Forum: Mikrocontroller und Digitale Elektronik Manueller Aufruf von averdude geht nicht richtig.


von Mathias (Gast)


Lesenswert?

Ich habe mit sloeber (Eclipse Aeduino) ein sehr einfacher Sketch 
erstellt.
Sloeber ruft averdude auf, welches dann die HEX in den Arduino lädt.
Dies funktioniert auch wunderbar.
Rufe ich averdude manuell von der Konsole aus, mit den gleichen 
Werten/Parameter, so wie es Sloeber macht, dann kommt noch eine Meldung:
1
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
Was hat es mit dieser Fehlermeldung auf sich, gemäss Ausgabe sieht das 
Hochladen sonst fehlerfrei aus.
Aber das grösste Problem, die HEX wurde im Arduino nicht aktualisiert !

Was mache ich falsch in der Konsole ?


Ich habe bewusst bei beiden Varianten die gleiche HEX genommen, somit 
ist ausgeschlossen, das es an dieser liegt.
Wen ich mit slober (Arduino Eclipse) mein Sketch hochlade, kommt 
folgende Meldung:
1
Starting upload
2
using arduino loader
3
Starting reset using DTR toggle process
4
Toggling DTR
5
Continuing to use/dev/ttyUSB0
6
Ending reset
7
 
8
 
9
Launching/home/tux/Programme/sloeber//arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/home/tux/Programme/sloeber//arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/tux/sloeber/nano_test/Release/nano_test.hex:i 
10
Output:
11
 
12
avrdude: AVR device initialized and ready to accept instructions
13
 
14
Reading | ################################################## | 100% 0.00s
15
 
16
avrdude: Device signature = 0x1e950f (probably m328p)
17
avrdude: reading input file "/home/tux/sloeber/nano_test/Release/nano_test.hex"
18
avrdude: writing flash (926 bytes):
19
 
20
Writing | ################################################## | 100% 0.30s
21
 
22
avrdude: 926 bytes of flash written
23
avrdude: verifying flash memory against /home/tux/sloeber/nano_test/Release/nano_test.hex:
24
avrdude: load data flash data from input file /home/tux/sloeber/nano_test/Release/nano_test.hex:
25
avrdude: input file /home/tux/sloeber/nano_test/Release/nano_test.hex contains 926 bytes
26
avrdude: reading on-chip flash data:
27
 
28
Reading | ################################################## | 100% 0.22s
29
 
30
avrdude: verifying ...
31
avrdude: 926 bytes of flash verified
32
 
33
avrdude done.  Thank you.
34
 
35
avrdude finished
36
upload done

Rufe ich dies manuell auf, die Pfade sind somit die gleichen wie unter 
sloeber, somit müsste eigentlich das gleiche passieren, tut es aber 
nicht.
Es kommt die komische safemode Meldung.  :roll:
1
$ /home/tux/Programme/sloeber//arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/home/tux/Programme/sloeber//arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/tux/sloeber/nano_test/Release/nano_test.hex:i 
2
 
3
avrdude: AVR device initialized and ready to accept instructions
4
 
5
Reading | ################################################## | 100% 0.00s
6
 
7
avrdude: Device signature = 0x1e950f (probably m328p)
8
avrdude: reading input file "/home/tux/sloeber/nano_test/Release/nano_test.hex"
9
avrdude: writing flash (926 bytes):
10
 
11
Writing | ################################################## | 100% 0.30s
12
 
13
avrdude: 926 bytes of flash written
14
avrdude: verifying flash memory against /home/tux/sloeber/nano_test/Release/nano_test.hex:
15
avrdude: load data flash data from input file /home/tux/sloeber/nano_test/Release/nano_test.hex:
16
avrdude: input file /home/tux/sloeber/nano_test/Release/nano_test.hex contains 926 bytes
17
avrdude: reading on-chip flash data:
18
 
19
Reading | ################################################## | 100% 0.22s
20
 
21
avrdude: verifying ...
22
avrdude: 926 bytes of flash verified
23
 
24
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
25
 
26
avrdude done.  Thank you. 

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Mathias schrieb:
> avrdude: safemode: Fuses OK (E:00, H:00, L:00)

Hau das mal in Google.

von Mathias (Gast)


Lesenswert?

Md M. schrieb:
> Mathias schrieb:
>> avrdude: safemode: Fuses OK (E:00, H:00, L:00)
>
> Hau das mal in Google.

Dies habe ich auch schon versucht, aber ich komme nicht weiter.

von Karl M. (Gast)


Lesenswert?

Hallo,

ich rate man zum lesen der Doku.

-p atmega328p

Dann arbeite ich hier mit :a, das ist nur Kosmetik
-U flash:w:/home/tux/sloeber/nano_test/Release/nano_test.hex:i

Wichtig ist auf jeden Fall der Parameter
"-B bitclock", warum steht im Datenblatt der atmega328p

Und dann der größte Fail, wer hat denn da nicht nachgedacht?
Deshalb auch mit einer Erklärung:
"-D"
Disable auto erase for flash. When the -U option with flash memory is 
specified, avrdude will perform a chip erase before starting any of the 
programming operations, since it generally is a mistake to program 
the flash without performing an erase first.
This option disables that. However, to remain backward compatible, the 
-i, and -m options automatically disable the auto erase feature.

Warum fragt man sich bestimmt, einfach man kann nur die Bits von 1->0 
kippen !

https://linux.die.net/man/1/avrdude
http://www.cs.ou.edu/~fagg/classes/general/atmel/avrdude.pdf

von Einer K. (Gast)


Lesenswert?

Wenn 2 Dinge gleich sind, und sich doch unterschiedlich verhalten, dann 
liegt es meist am Kontext.

Hier dann wohl die Umgebungsvariablen.


-----------

Karl M. schrieb:
> ich rate man zum lesen der Doku.
>
> -p atmega328p
>
> Dann arbeite ich hier mit :a, das ist nur Kosmetik
> -U flash:w:/home/tux/sloeber/nano_test/Release/nano_test.hex:i
Da sehe ich keinen Zusammenhang.

Karl M. schrieb:
> Wichtig ist auf jeden Fall der Parameter
> "-B bitclock", warum steht im Datenblatt der atmega328p
Wir sind hier nicht mit einem ISP Programmer unterwegs, sondern der 
serielle Bootloader wird genutzt.
-B also irrelevant.

Karl M. schrieb:
> Und dann der größte Fail, wer hat denn da nicht nachgedacht?
> Deshalb auch mit einer Erklärung:
> "-D"
Du!

von Karl M. (Gast)


Lesenswert?

Wieso gleich?

die Fehlermeldungen von AVRDUDE sind doch eindeutig - falsche Avrdude 
Parameter und Unwissen über diese.

von Karl M. (Gast)


Lesenswert?

Warum so unfreundlich,
ja klar ist ein Bootloader, der kann aber auch diverse Parameter 
übergeben bekommen und reagiert darauf entsprechend der Spezifikation.

Also wie soll man, ohne zu wissen, welcher verwendet wird, entscheiden 
können, dass er nicht alle Avrdude Kommandos verarbeitet ?

Arduino F. schrieb:
>> ich rate man zum lesen der Doku.
>>
>> -p atmega328p

Dieser Parameter, für die Bezeinchung des Atmel, ist nicht vorhanden, 
steht auch in der Fehlermeldung.

von Einer K. (Gast)


Lesenswert?

Karl M. schrieb:
> Also wie soll man, ohne zu wissen, welcher verwendet wird, entscheiden
> können, dass er nicht alle Avrdude Kommandos verarbeitet ?
Weil -B nur bei ISP usw. Programmern Sinn macht. (sachte ich doch schon)
Was soll der Bootloader damit anstellen, außer ignorieren?
Und der Verzicht auf -D macht auch keinen Sinn.
Der Bootloader würde sich bei einem Chip Erase selber löschen.

Karl M. schrieb:
> Warum so unfreundlich,

Andern ungerechtfertigt eine LeseHemmung vorwerfen.
Selber eine zeigen.
Und wenn du darauf hingewiesen wirst "oh bist du aber unfreundlich" 
jammern..

Mir scheint, du hast ein Sozialisierungsproblem.


In einem hast du recht!
Der -p Parameter sollte repariert werden.

Vermute aber, dass das nicht viel bringt, denn Write und Verify laufen 
ja zufriedenstellend durch.

von Mathias (Gast)


Lesenswert?

Niemand eine Idee, was es ist ?

von Einer K. (Gast)


Lesenswert?

Arduino F. schrieb:
> Der -p Parameter sollte repariert werden.
Das hast du zu tun.

Das macht zumindest die Meldungen freundlicher.

von Mathias (Gast)


Lesenswert?

Arduino F. schrieb:
> Arduino F. schrieb:
>> Der -p Parameter sollte repariert werden.
> Das hast du zu tun.
>
> Das macht zumindest die Meldungen freundlicher.

Auch wen ich -pm328p schreibe, habe ich den Fehler immer noch.
1
$ /home/tux/Programme/sloeber//arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/home/tux/Programme/sloeber//arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -pm328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/tux/sloeber/nano_test/Release/nano_test.hex:i

So nebenbei, wen ich ein ungültiger Wert nehme, dann listet averdude 
alle gültigen Werte auf.

von Stefan F. (Gast)


Lesenswert?

-p atmega328p funktioniert ganz sicher, auch wenn in der Doku die 
kürzere Form m328p steht.

von Einer K. (Gast)


Lesenswert?

Mathias schrieb:
> Auch wen ich -pm328p schreibe, habe ich den Fehler immer noch.

Sehe keinen Fehler!

Write und Verify klappen doch.

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.