mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik avrdude + jtagice-ii + linux + isp: laaaaangsaaaaam.


Autor: E. Hermanns (emax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Thema gibt's zwar hie und da im Web, und auch hier sind ähnliche 
Beiträge zu finden, aber eine Lösung habe ich nicht entdeckt:

Die Programmierung eines AT90S8535 (AVR-CTRL) unter linux (Ubuntu 10.04) 
mit avrdude und jtagice-mkII ist so langsam, dass es m.E. nicht normal 
sein kann. Der Gesamtvorgang inklusive verify dauert für lausige 5700 
Byte sagenhafte 20 Minuten. Dabei ist es egal, ob ich raw oder ihex 
schreibe.

An welchen Knöpfen muss ich drehen, um das schneller zu bekommen?

Den -vv output hab ich mal angehängt.

$ avrdude -B10 -D  -p 8535  -P usb -c jtag2isp  -U flash:w:main-1.5rc1.hex:r -vv

avrdude: Version 5.10, compiled on Mar 23 2010 at 15:03:00
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/ed/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : jtag2isp
         Setting bit clk period        : 10.0
avrdude: stk500v2_jtagmkII_open()
avrdude: usbdev_open(): Found JTAGICE mkII, serno: 0900000068CB
avrdude: usbdev_open(): using read endpoint 0x82
avrdude: jtagmkII_getsync(): Sending sign-on command: 0x86 (28 bytes msg)
JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU:
  boot-loader FW version:        255
  firmware version:              6.07
  hardware version:              0
S_MCU:
  boot-loader FW version:        255
  firmware version:              6.07
  hardware version:              1
Serial number:                   09:00:00:00:68:cb
Device ID:                       JTAGICEmkII
avrdude: jtagmkII_setparm()
avrdude: jtagmkII_setparm(): Sending set parameter command (parm 0x03, 1 bytes): 0x80 (1 bytes msg)
avrdude: jtagmkII_getsync(): Sending get sync command: 0x80 (1 bytes msg)
         AVR Part                      : AT90S8535
         Chip Erase delay              : 20000 us
         PAGEL                         : P00
         BS2                           : P00
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    12   128    0 no        512    0      0  9000 20000 0x00 0xff
           flash          4    12   128    0 no       8192    0      0  9000 20000 0xff 0xff
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           fuse           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00

         Programmer Type : JTAGMKII_ISP
         Description     : Atmel JTAG ICE mkII in ISP mode
avrdude: jtagmkII_getparm()
avrdude: jtagmkII_getparm(): Sending get parameter command (parm 0x06): 0x81 (3 bytes msg)
         Vtarget         : 4.2 V
         SCK period      : 10.37 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.15s
avrdude: Device signature = 0x1e9303
avrdude: safemode: fuse reads as 1
avrdude: reading input file "main-1.5rc1.hex"
avrdude: writing flash (5758 bytes):

Writing | ################################################## | 100% 872.76s

avrdude: 5758 bytes of flash written
avrdude: verifying flash memory against main-1.5rc1.hex:
avrdude: load data flash data from input file main-1.5rc1.hex:
avrdude: input file main-1.5rc1.hex contains 5758 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 292.14s

avrdude: verifying ...
avrdude: 5758 bytes of flash verified

avrdude: safemode: fuse reads as 1
avrdude: safemode: Fuses OK
avrdude: stk500v2_jtagmkII_close()
avrdude: jtagmkII_close()
avrdude: jtagmkII_close(): Sending sign-off command: 0x80 (1 bytes msg)

avrdude done.  Thank you.

ed@summini:~/Projekte/Embedded/AVR/AVR-CTRL/t$ avrdude -D  -p 8535  -P usb -c jtag2isp  -e

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.15s

avrdude: Device signature = 0x1e9303
avrdude: erasing chip

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Autor: E. Hermanns (emax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähm, die letzten sieben Textzeilen aus aus der obigen Ausgabe gehören 
nicht dazu, zu viel kopiert.

Autor: E. Hermanns (emax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn niemand sonst das Problem ?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nicht, weil ich eine echte serielle Schnittstelle habe.
Du hast einen USB-seriell-Wandler in der Kette?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schnell läuft dein AT90S8535?

Wenn >= 4 MHz, kann die -B10 Bremse raus. Der Defaultwert ist 1 µs, d.h. 
-B10 bremst um den Faktor 10!

http://www.nongnu.org/avrdude/user-manual/avrdude.html

Autor: E. Hermanns (emax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:
> Du hast einen USB-seriell-Wandler in der Kette?

Nein, zumindest nicht wissentlich. Der JTAGICE-mkII ist über den 
"nativen" ATEML-USB angeschlossen.

Autor: E. Hermanns (emax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie schnell läuft dein AT90S8535?

Das Board ist mit einem 8MHz Quarz bestückt, das ist also die 
Geschwindigkeit, mit der es im Normalbetrieb arbeitet. Ich weiß aber 
nicht, ob im ISP-Modus irgendeine interne Clock geschaltet wird.

> Wenn >= 4 MHz, kann die -B10 Bremse raus. Der Defaultwert ist 1 µs, d.h.
> -B10 bremst um den Faktor 10!

Ich muss zugeben, dass ich mir dieses Flag probehalber in irgendeinem 
Thread abgeschaut habe. Jetzt weiß ich wenigstens, was es macht. :~| 
Aber ich hatte das auch ohne ausprobiert, die Änderung war marginal, 
vielleicht 10%.

Autor: E. Hermanns (emax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ATEML-USB

Das soll natürlich "ATMEL USB" heißen.

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.