Forum: Mikrocontroller und Digitale Elektronik .avrduderc Syntax


von Hey Dude (Gast)


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.

von Hey Dude (Gast)


Lesenswert?

Benutzt denn keiner eine personalisierte .avrduderc oder ein 
entsprechend angepasstes Makefile?

von g457 (Gast)


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

von Christian H. (netzwanze) Benutzerseite


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.
1
-B bitclock
2
Specify the bit clock period for the JTAG interface or the ISP clock (JTAG ICE
3
only). The value is a
4
oating-point number in microseconds. The default value
5
of the JTAG ICE results in about 1 microsecond bit clock period, suitable for
6
target MCUs running at 4 MHz clock and above. Unlike certain parameters in
7
the STK500, the JTAG ICE resets all its parameters to default values when the
8
programming software signs o from the ICE, so for MCUs running at lower
9
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.

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


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.

von Hey Dude (Gast)


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:
1
AVRDUDE_PROGRAMMER = usbtiny
2
3
AVRDUDE_PORT = usb   
4
5
# increase bitrate
6
AVRDUDE_BITRATE = 3
7
8
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
9
# AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
10
11
# AVRDUDE_ERASE_COUNTER = -y
12
13
# AVRDUDE_NO_VERIFY = -V
14
15
# AVRDUDE_VERBOSE = -v -v
16
17
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
18
AVRDUDE_FLAGS += -B $(AVRDUDE_BITRATE)
19
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
20
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
21
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
22
23
# ---------------------------------------------------------------------------

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.

von Vlad T. (vlad_tepesch)


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

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.