www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik .avrduderc Syntax


Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

(avrdude unter Debian)
ich habe kürzlich meinen Parallelport-Programmer durch einen USB-ISP 
ersetzt, funktioniert auch wunderbar.
Allerdings ist der USB-Programmer deutlich langsamer, das nervt mit der 
Zeit. Ich habe deshalb versucht die Sache durch Übergabe des 
bitrate-Parameters zu beschleunigen, auf der Console funktioniert das 
auch. Da ich aber aus dem Makefile heraus programmieren möchte, müßte 
der Parameter per .avrduderc (oder im Makefile) übergeben werden, das 
kriege ich aber nicht auf die Reihe.
B = 2;  oder auch
bitrate  = 2;
führen nur zu einem
error at ./root/.avrduderc:1 unrecognized character: "b"

Wie muß das korrekt lauten?
Danke.

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutzt denn keiner eine personalisierte .avrduderc oder ein 
entsprechend angepasstes Makefile?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze weder das eine noch das andere - mehr oder weniger :-) 
Stattdessen hab ich ein eigenes Schellskript gebastelt (in ~/bin/), das 
den avrdude mit den passenden Parametern aufruft. Als Leckerli sucht 
selbiges Skript auch noch im aktuellen Arbeitsverzeichnis nach einer 
projektbezogenen Konfigurationsdatei, sodass mans auch problemlos aus 
Code::Blocks und ähnlichem heraus verwenden kann.

HTH

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Dude schrieb:
> Benutzt denn keiner eine personalisierte .avrduderc oder ein
> entsprechend angepasstes Makefile?

Der bitclock lässt sich, laut Manual, nur per Kommandozeile definieren.
-B bitclock
Specify the bit clock period for the JTAG interface or the ISP clock (JTAG ICE
only). The value is a
oating-point number in microseconds. The default value
of the JTAG ICE results in about 1 microsecond bit clock period, suitable for
target MCUs running at 4 MHz clock and above. Unlike certain parameters in
the STK500, the JTAG ICE resets all its parameters to default values when the
programming software signs o from the ICE, so for MCUs running at lower
clock speeds, this parameter must be specied on the command-line. 

Ansonsten sieht die .avrduderc genauso aus wie die /etc/avrduderc (oder 
wo auch immer die bei dir liegt).

Um zu wissen, wie Dein Makefile anzupassen ist, müssten wir es erstmal 
sehen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Dude schrieb:
> Da ich aber aus dem Makefile heraus programmieren möchte, müßte
> der Parameter per .avrduderc (oder im Makefile) übergeben werden, das
> kriege ich aber nicht auf die Reihe.

Nun, avrduderc gestattet nur das, was auch in avrdude.conf stehen
kann, mit der Ergänzung, dass man "default_programmer",
"default_serial" und "default_parallel" dort angeben kann (die wären
natürlich auch im avrdude.conf statthaft, aber dort nicht sinnvoll).

Was bekommst du denn aber im Makefile nicht hin?  Dem AVRDUDE ein
paar Kommandozeilenoptionen mit auf die Reise zu geben, sollte doch
eine der einfachsten Übungen für make sein.

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst mal vielen Dank für alle Antworten.

Es scheint also so daß ich den Parameter nicht per avrduderc übergeben 
kann.

Ich benutze ein minimal angepasstes Makefile aus den Beispielen von 
hier. Mir war nicht klar wie ich da eine Option mit Parameter einpflege. 
Der für den Programmer geänderte Teil lautet jetzt so:
AVRDUDE_PROGRAMMER = usbtiny

AVRDUDE_PORT = usb   

# increase bitrate
AVRDUDE_BITRATE = 3

AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
# AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep

# AVRDUDE_ERASE_COUNTER = -y

# AVRDUDE_NO_VERIFY = -V

# AVRDUDE_VERBOSE = -v -v

AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
AVRDUDE_FLAGS += -B $(AVRDUDE_BITRATE)
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)

# ---------------------------------------------------------------------------

Einmal feste drüber nachgedacht, reichte mein Abstrahiervermögen dann 
doch aus um zu erkennen, wie und wo ich da ein "bitrate = 3" 
unterbringen kann ;-)
Manchmal reicht es eben wenn man drüber spricht. Jetzt funktioniert das 
wie gewünscht, vielen Dank nochmal.

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich mich nicht falsch erinnere heißt ein kleinerer Wert eine höhere 
Geschwindigkeit, da dieser wert nicht eine Rate angibt sondern die 
Anzahl an Wartezyklen.

-B 1 ist also schneller als -B 3

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.