Forum: Compiler & IDEs AVRDUDE 6.0 freigegeben


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


Lesenswert?

Es ist schon etwas früh am Morgen, daher erstmal nur der englische
Text.  Falls jemand damit Verständnisprobleme hat, würde ich ihn auch
noch auf Deutsch verfassen.

More than two years after the previous release (5.11.1), AVRDUDE 6.0
finally made it to go public.

I'd like to thank everyone who has been involved into that release,
both active developers with SVN access as well as numerous users who
contributed bugfixes, improvements and suggestions.

The primary reason for the major version number bump was a changed
syntax of the configuration file (programmer types are now strings
rather than keywords), but that version number change has certainly
also "raised the bar" about many other things that should have been
done before releasing it.  Among those are:

. direct reading of ELF files (provided libelf with its header files
  is around when ./configure runs)

. keep track of input file contents; when programming just a
  bootloader only, nothing else but the bootloader area is touched

. config file can refer to a "parent" device; this dramatically
  simplifies the config file as only those things that have been
  changed compared to the parent must be specified anew

As an experiment, I'm trying to provide an "official" Win32 binary
release for the first time.  It has been compiled using a MinGW32
cross-compilation environment on my FreeBSD host system.  If this
turns out to be a complete failure, please tell me, so I can stop this
experiment, and leave Windows binaries to those who know more about
the matter than me.  If it works, you might want to tell me
nevertheless, so I might continue that service in future.

Here are the complete release notes for 6.0 (from the NEWS file):
1
  * Major changes compared to the previous version:
2
3
    - Programmer types in configuration file are no longer keywords but
4
      specified as string.
5
6
      So you need to change 'type = XYZ;' to 'type = "XYZ";' in own
7
      config files.  (internal: The parser does not need to know all
8
      programmer types now, new programmers will update only the table
9
      in pgm_type.c.)
10
11
    - The erase cycle counter (formerly options -y / -Y) has been
12
      removed.
13
14
    - Specifying a -U option without a memory type (short form of
15
      option argument list) now defaults to "application" memory for
16
      Xmega devices, and "flash" for everything else.  This ensures
17
      the Xmega bootloader is not accidentally touched.
18
19
    - For programmers that support it, the default erase method is a
20
      page erase now, rather than a chip erase (Xmega only).
21
22
    - Keep track of input file contents
23
      Memory segments are being tracked to remember whether they've
24
      been actually read from a file.  Only segments that came from a
25
      file are being programmed into the device, or considered for
26
      verification.  This drastically improves handling speed for
27
      sparse files (e.g. files that have a second bootloader segment),
28
      and it ensures the device contents is actually compared for
29
      everything mentioned in the file (even in case the file has
30
      large 0xFF blocks).
31
32
                                                                                                         
33
    - The -U option now accepts ELF files as input files, and extracts
34
      the appropriate section contents that matches the requested memory
35
      region.  To enable this feature, the host system used for the
36
      compilation must have a libelf around, including the respective
37
      header files (i.e., package "libelf-devel" on many Linux systems).
38
39
    - Programmers and parts lists
40
41
      They are now sorted at output with '-c ?'/'-p ?'. (patch #7671:
42
      Sorting programmers and parts lists for console output)
43
44
      Programmers and parts lists in documentation generated from lists
45
      mentioned above. (patch #7687: Autogenerating programmers and
46
      parts lists for docs)
47
48
      Output list of programmer types with '-c ?type', add list to
49
      documentation
50
51
    - Configuration files now accepts parent parts/programmers, parts
52
      starting with '.' (eg. .xmega) are not included in output parts
53
      list and can be used as abstract parents
54
55
      (bug #34302: Feature request : device configuration with parent classes)
56
      (patch #7688: Implement parent programmers feature)
57
58
    - Additional config files which are read after default can be
59
      specified on command line using '-C +filename'
60
61
      (patch #7699 Read additional config files)
62
63
    - "Safemode" can now be turned off by default from within a
64
      configuration file (like ~/.avrduderc).
65
66
    - The new option -l logfile allows to redirect diagnostic messages
67
      to a logfile rather than stderr.  Useful to record debugging
68
      traces, in particular in environments which do not offer
69
      shell-style redirection functionality for standard streams.
70
71
    - When leaving debugWIRE mode, immediately retry with ISP rather
72
      than bailing out completely.
73
74
    - The USBasp programmer implementation now supports detailed traces
75
      with -vvv, and device communication traces with -vvvv.
76
77
    - The "verbose" terminal mode command allows to query or modify the
78
      verbosity level.
79
80
  * New devices supported:
81
    - ATmega48P (patch #7629 add support for atmega48p)
82
    - AT90PWM316 (bug #21797: AT90PWM316: New part description)
83
    - ATxmega16D4, ATxmega32D4, ATxmega64D4, ATxmega128D4
84
    - ATmega256RFR2, ATmega128RFR2, ATmega64RFR2, ATmega2564RFR2,
85
      ATmega1284RFR2, ATmega644RFR2
86
    - ATtiny1634
87
    - ATxmega128A1U, ATxmega128A3U, ATxmega128A4U, ATxmega128B1,
88
      ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega16A4U,
89
      ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega192D3,
90
      ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3,
91
      ATxmega32A4U, ATxmega32C4, ATxmega384C3, ATxmega384D3,
92
      ATxmega64A1U, ATxmega64A3U, ATxmega64A4U, ATxmega64B1,
93
      ATxmega64B3, ATxmega64C3, ATxmega64D3
94
    - ATtiny43U
95
    - ATmega406
96
    - ATxmega8E5, ATxmega16E5, ATxmega32E5
97
    - ATtiny20, ATtiny40
98
99
  * New programmers supported:
100
    - linuxgpio
101
      + any (embedded) Linux system with 4 GPIOs available can be used
102
        as a programmer with little or no additional hardware.
103
104
    - avrftdi
105
      + o-link (patch #7672 adding support for O-Link (FTDI based
106
        JTAG) as programmer)
107
      + 4232h (patch #7715 FT4232H support)
108
    - TPI support
109
      + openmoko (bug #37977 Support for Openmoko Debug Board)
110
111
    - usbasp
112
      + nibobee (previously specified as '-c usbasp -P nibobee)
113
      + usbasp-clone (same as usbasp but ignores vendor and product
114
        string, checks only vid/pid)
115
116
    - ftdi_syncbb (new type for synchronous bitbanging with ft232r/ft245r)
117
      + ft245r (FT245R Synchronous BitBang, miso = D1, sck = D0, mosi
118
        = D2, reset = D4)
119
      + ft232r (FT232R Synchronous BitBang, miso = RxD, sck = RTS,
120
        mosi = TxD, reset = DTR)
121
      + bwmega (BitWizard ftdi_atmega builtin programmer, miso = DSR,
122
        sck = DCD, mosi = CTS, reset = RI)
123
      + arduino-ft232r (Arduino: FT232R connected to ISP, miso = CTS
124
        X3(1), sck = DSR X3(2), mosi = DCD X3(3), reset = RI X3(4))
125
      + diecimila (alias for arduino-ft232r)
126
127
    - pickit2
128
129
    - Atmel JTAGICE3
130
131
    - buspirate_bb (TPI programming using the BusPirate in bitbang mode)
132
133
  * Bugfixes
134
      - bug #34027: avrdude AT90S1200 Problem
135
      - bug #34518: loading intel hex files > 64k using record-type 4
136
      - patch #7667: Minor memory handling fixes
137
      - patch #7680: Fixing timeout problem in ser_recv in ser_win32.c
138
      - patch #7693: Fix config file atmel URLs (+ URLs in
139
        avrdude.texi and avrpart.h)
140
      - bug #21663: AT90PWM efuse incorrect, bug #30438: efuse bits
141
        written as 0 on at90pwmxx parts
142
      - bug #35261: avrftdi uses wrong interface in avrftdi_paged_(write|load)
143
      - patch #7437 modifications to Bus Pirate module
144
      - patch #7686 Updating buspirate ascii mode to current firmware,
145
        use AUX as clock generator, and setting of serial receive
146
        timeout
147
      - bug #34768 Proposition: Change the name of the AVR32 devices
148
      - patch #7718: Merge global data of avrftdi in a private data
149
        structure
150
      - bug #35208: avrdude 5.11 on freebsd 8.2-STABLE does not reset
151
        Arduino Uno properly
152
      - bug #34518: loading intel hex files > 64k using record-type 4
153
        (Extended Linear Address Record)
154
      - bug #34027: avrdude AT90S1200 Problem
155
      - bug #30451: Accessing some Xmega memory sections gives not
156
        supported error
157
      - bug #28744: Can't load bootloader to xmega128a1
158
      - bug #29019: pagel/bs2 warning when uploading using stk500 to xmega
159
      - bug #30756: When setting SUT to 64ms on XMEGA, avrdude doesn't
160
        read device signature
161
      - bug #37265: wrong page sizes for XMega64xx in avrdude.conf
162
      - bug #37942: Latest SVN can't program in dragon_jtag mode
163
      - patch #7876 JTAGICE mkII fails to connect to attiny if debugwire
164
        is enabled AND target has a very slow clock
165
      - bug #39893: Verification failure with AVRISPmkII and Xmega
166
      - bug #38713: Compilation of the documentation breaks with texinfo-5
167
      - bug #38023: avrdude doesn't return an error code when attempting
168
        to upload an invalid Intel HEX file
169
      - bug #39794: warnings when building avrdude 6.0rc1 under CentOS 6.4
170
      - bug #35800: Compilation error on certain systems if parport is disabled
171
      - bug #38307: Can't write usersig of an xmega256a3
172
      - bug #38580: Current svn head, xmega and fuses, all fuses tied to fuse0
173
      - bug #39691: Buffer overrun when reading EEPROM byte with JTAGICE3
174
      - bug #38951: AVR109 use byte offset instead of word offset
175
      - patch #7769: Write flash fails for AVR910 programmers
176
      - bug #38732: Support for ATtiny1634
177
      - bug #36901: flashing Atmega32U4 EEPROM produces garbage on chip
178
      - bug #28344: chip_erase_delay too short for ATmega324P, 644, 644P, and 1284P
179
      - bug #34277: avrdude reads wrong byte order if using avr911 (aka butterfly)
180
      - bug #35456: The progress bar for STK500V2 programmer is "wrong".
181
      - patch #5708: avrdude should make 10 synchronization attempts instead of just one
182
      - patch #7606: ATtiny43u support
183
      - patch #7657: Add ATmega406 support for avrdude using DRAGON + JTAG
184
      - bug #35474: Feature request: print fuse values in safemode output.
185
      - patch #7710: usb_libusb: Check VID/PID before opening device
186
      - [no-id]: Fix SCK period adjustment for STK500v2
187
      - bug #40040: Support for ATtiny20 and ATtiny40
188
189
  * Internals:
190
191
    - Restructuring and compacting programmer definition part of
192
      grammar for config file.
193
    - Cleanup of parser code, removing unused definitions/
194
      functions. Using yylex_destroy if available.
195
    - Fixed some more memory leaks, added cleanup code at program exit
196
      (to minimize the number of non-freed memory blocks reported by
197
      valgrind)
198
    - Fixed some findings reported by cppcheck.

: Bearbeitet durch Moderator
von marixstorm (Gast)


Lesenswert?

Danke dir Joerg.
Wird morgen gleich compiliert und installiert.

Gute N8,

MfG

von Konrad S. (maybee)


Lesenswert?

Erst am Sonntag habe ich mir den (damals) aktuellen Stand von avrdude 
geholt und übersetzt. Hätte nicht gedacht, dass Software derart 
schnell veraltet. ;-)

Danke, Jörg, für deine tolle Arbeit!

von Thomas K. (rlyeh_drifter) Benutzerseite


Lesenswert?

Thanks dude!

von marixstorm (Gast)


Lesenswert?

marixstorm schrieb:
> Danke dir Joerg.
> Wird morgen gleich compiliert und installiert.

Siehe http://savannah.nongnu.org/bugs/index.php?40055

MfG

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


Lesenswert?

Oi, noch in der Nacht drei Follups!  Dabei dachte ich, dass ich schon
spät ins Bett gekommen wäre. ;-)

marixstorm schrieb:
> marixstorm schrieb:
>> Danke dir Joerg.
>> Wird morgen gleich compiliert und installiert.
>
> Siehe http://savannah.nongnu.org/bugs/index.php?40055

Mist auch.  Nun gut, es gibt also jetzt stattdessen ein AVRDUDE 6.0.1.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Bei

http://nongnu.mirrors.hostinginnederland.nl//avrdude/avrdude-6.0.1-mingw32.zip

kommt folgender Fehler:
1
Not Found
2
3
The requested URL /avrdude/avrdude-6.0.1-mingw32.zip was not found on this server.

Dito für andere Dateien der 6.0.1.

http://download.savannah.gnu.org/releases/avrdude/avrdude-6.0.1-mingw32.zip

wird zu o.g. weitergeleitet.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Lies mal das „Kleingedruckte“ auf der Download-Seite. ;-)

Entweder noch einen Moment Geduld, bis die Mirrors das aufgesammelt
haben, oder halt mal mit der Hand die URL editieren, um die Daten
direkt von Savannah zu holen.  Nein, einen direkten Link mag ich
nicht posten, denn der würde sich via Gugel rumsprechen, und das
höhlt die Idee der Mirrors dann aus.

: Bearbeitet durch Moderator
von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Wie ist eigentlich der Suchpfad für die .conf?
1
> avrdude-6.0.1.exe -C avrdude-6.0.1.conf -c usbasp -p atmega168 -V -U flash:w:"lumigon-bench.hex"
2
avrdude-6.0.1.exe: can't open config file "avrdude-6.0.1.conf": No such file or directory
3
avrdude-6.0.1.exe: error reading system wide configuration file "avrdude-6.0.1.conf"

avrdude-6.0.1.conf liegt im gleichen Verzeichnis wie avrdude-6.0.1.exe, 
welches über PATH gefunden wird.  Warum wird die .conf nicht gefunden? 
War IIRC schon bei älteren Versionen so, wobei ein avrdude.conf im 
gleichen Verzeichnis gefunden wird...

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


Lesenswert?

Johann L. schrieb:
> Wie ist eigentlich der Suchpfad für die .conf?

$prefix/etc/avrdude.conf

Frag mich aber nicht, was $prefix in einer Windows-Konfiguration
ist. :-(  /usr/local?

Mit -C angeben geht aber immer.

> War IIRC schon bei älteren Versionen so, wobei ein avrdude.conf im
> gleichen Verzeichnis gefunden wird...

Eric Weddington hat meiner Erinnerung nach bei seinen Builds immer
--prefix und --sysconfdir auf den gleichen Wert gesetzt.  Das hilft
aber auch nur so lange, wie man es dann auch tatsächlich in das damit
bezeichnete Verzeichnis hinein installiert.

Hmm:
1
    /* Use Windows API call to search for the Windows default system config file.*/
2
    SearchPath(NULL, "avrdude.conf", NULL, PATH_MAX, sys_config, &filename);

(aus confwin.c)

Das würde aber heißen, dass er es entlang PATH finden sollte, oder?

: Bearbeitet durch Moderator
von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Mit -C angeben geht aber immer.

Wenn du mir verrätst wie.  Konkret liegen beide in e:\WinAVR\4.7.2\bin

Versucht und nicht funktionieren tun:

-C e:\WinAVR\4.7.2\bin\avrdude-6.0.1.conf

-C e:/WinAVR/4.7.2/bin/avrdude-6.0.1.conf

-C e/WinAVR/4.7.2/bin/avrdude-6.0.1.conf

-C /e/WinAVR/4.7.2/bin/avrdude-6.0.1.conf

-C ./avrdude-6.0.1.conf

-C .\avrdude-6.0.1.conf

-C avrdude-6.0.1.conf


Wie muß ich die Datei denn angeben? So langsam gehen mir die Ideen 
aus...

>  /* Use Windows API call to search for the Windows default system config file.*/
>  SearchPath(NULL, "avrdude.conf", NULL, PATH_MAX, sys_config, &filename);
> (aus confwin.c)
>
> Das würde aber heißen, dass er es entlang PATH finden sollte, oder?

Nur für die avrdude.conf, aber nicht für -C datei, oder?

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Johann L. schrieb:
> Wie muß ich die Datei denn angeben? So langsam gehen mir die Ideen
> aus...

Mir allerdings auch.

Unter unixoiden Systemen benutze ich während der Entwicklung immer

(cd builddir)

./avrdude -C avrdude.conf ...

ohne Probleme.

Ich werde den Kram mal auf einem Windows installieren müssen.  Mal
sehen, wo ich eins finden kann.

: Bearbeitet durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Also hier geht det so.

Ich habe extra mal das avrdude.conf in avrdude-6.0.1.conf umbenannt
(wie bei dir).  Wenn ich es beim originalen Namen belasse, findet
er es im aktuellen Verzeichnis auch ohne -C.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Oh mann, ich hatte nen Tippteufel im Dateiname.  Nach Umbenennung 
funktionieren

-C e:\WinAVR\4.7.2\bin\avrdude-6.0.1.conf

-C /e/WinAVR/4.7.2/bin/avrdude-6.0.1.conf

Das reicht um ersma weiter zu machen.  Aber ohne absoluten Pfad 
funktioniert's immer noch nicht, es sei denn nach cd ins Verzeichnis in 
dem avrdude.exe liegt.

von Karsten F. (Firma: von Dänemark) (bingo600)


Lesenswert?

Jörg Wunsch schrieb:
> Lies mal das „Kleingedruckte“ auf der Download-Seite. ;-)
>
> Entweder noch einen Moment Geduld, bis die Mirrors das aufgesammelt
> haben, oder halt mal mit der Hand die URL editieren, um die Daten
> direkt von Savannah zu holen.  Nein, einen direkten Link mag ich
> nicht posten, denn der würde sich via Gugel rumsprechen, und das
> höhlt die Idee der Mirrors dann aus.

The .nl mirror still haven't gotten 6.0.1.

Other Savannah mirrors can be found here
http://download-mirror.savannah.nongnu.org/mirmon/savannah/

I chose a .no mirror ,and got the 6.0.1 from there

/Bingo

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


Lesenswert?

Johann L. schrieb:
> Aber ohne absoluten Pfad funktioniert's immer noch nicht

Auch nicht, wenn du es avrdude.conf (ohne Versionsnummer) nennst?

Nur unter diesem Namen wird es normal gesucht.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Johann L. schrieb:
>> Aber ohne absoluten Pfad funktioniert's immer noch nicht
>
> Auch nicht, wenn du es avrdude.conf (ohne Versionsnummer) nennst?

Doch, damit funkttioniert es, und -C braucht's dann eh nicht.  Im 
Verzeichnis gibt's bereits eine avrdude.conf, die ich nicht durch die 
6.0.1 überschreiben wollte — was auch notwendig ist, da die conf zur 6.x 
hin nicht aufwärtskompatibel erweitert wurde.

> Nur unter diesem Namen wird es normal gesucht.

Aber wenn er -C avrdude.conf findet, warum dann nicht -C foo.conf? Sieht 
mir immer noch nach einem Bug aus.

von Stephan B. (matrixstorm)


Lesenswert?

Hallo nochmal, Jörg.

Mal eine etwas andere Frage: Ist es fuer die nahe Zukunft geplant, dass 
AVRDUDE das FLIP (fuer DFU bootloader) Protokoll unterstuetzen wird?

MfG Stephan

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


Lesenswert?

Johann L. schrieb:
> Aber wenn er -C avrdude.conf findet, warum dann nicht -C foo.conf?

Weil -C das intern zuvor ermittelte sys_config[] komplett
überschreibt:
1
      case 'C': /* system wide configuration file */
2
        if (optarg[0] == '+') {
3
          ladd(additional_config_files, optarg+1);
4
        } else {
5
          strncpy(sys_config, optarg, PATH_MAX);
6
          sys_config[PATH_MAX-1] = 0;
7
        }
8
        break;

Damit muss man es stets mit einem Config-File angeben, das entweder
als absoluter oder relativer Pfad bezogen auf das aktuelle Verzeichnis
gefunden werden kann.

Das ist unter Unix und Windows auch gleich, nur die vorherige Ermittlung
des sys_config[] unterscheidet sich.  Da die Suche ohnehin nur dem
Windows-API aufträgt, nach "avrdude.conf" zu schauen (die Option -C
ist an dieser Stelle noch gar nicht ausgewertet worden), wäre alles
andere auch nicht nützlich.

Man könnte natürlich in Erwägung ziehen, vor dem "avrdude.conf" noch
nach "avrdude-${version}.conf" zu schauen.  Patches welcome. ;-)

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


Lesenswert?

Stephan B. schrieb:
> Mal eine etwas andere Frage: Ist es fuer die nahe Zukunft geplant, dass
> AVRDUDE das FLIP (fuer DFU bootloader) Protokoll unterstuetzen wird?

Sender Jerewan: "Im Prinzip ja, aber ..."  ;-)

Es gibt bereits einen Patch, der das tun sollte, aber mein erster
Versuch damals war nicht sehr erfolgreich, und der Einreicher hat
sich in Schweigen gehüllt.  (Steht alles im zugehörigen Patch-Tracker.)

In der Vorbereitung auf Release 6.0 hatte ich genügend andere Dinge
zu tun, die ich wichtiger fand, daher habe ich an diesem Patch im
Moment nichts weiter gemacht.

Derzeit habe ich aber gerade jemanden, der sich dafür interessiert.
Es könnte also sein, dass es gar nicht mehr so lange dauert.

von Stephan B. (matrixstorm)


Lesenswert?

Danke fuer die schnelle Antwort.

Ich werde mir mal das Patch ansehen.

MfG Stephan

von marixstorm (Gast)



Lesenswert?

Hallo nochmal.

Ich habe mir mal erlaubt das Patch zu ueberarbeiten, und auf die neuste 
Version 6.0.1 zu "updaten".

Mein Ergebnis haengt an, vielleicht kann Joerg es ja nach ausreichenden 
Testergebnissen ja "mainstream" machen.

Also: Bitte testen g

MfG Stephan

von 900ss (900ss)


Lesenswert?

Moin Jörg,

habe eben erst diesen Thread entdeckt...

Letzte Woche brauchte ich AVRDude (auf Windows 7) und habe das ZIP 
(V6.0.1) runtergeladen und es in ein Verzeichnis entpackt, dass im Pfad 
liegt. Dann zu meinem Projektverzeichnis gewechselt und AVRDude 
gestartet.

Läuft ohne zu zicken. Weiß garnicht was du hast. Du kennst dich mit 
Windows besser aus als du möchtest :p

Danke dir (und den anderen ) für die neue Version.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

900ss D. schrieb:
> Weiß garnicht was du hast.

Aber ich weiß zumindest, was ich nicht habe: ein Windows. ;-)

Die Win32-Version ist mit dem MinGW32-Compiler als Cross-Compiler unter
FreeBSD entstanden.  Daher mag ich einfach nicht zu viele Erwartungen
in sie setzen.  Andererseits freut es mich natürlich zu hören, dass
diese Version ganz offensichtlich zumindest für mehr als einen
Windows-Nutzer funktioniert.

von Dennis X. (Gast)


Lesenswert?

Habe ich das richtig gelesen der JTAGICE 3 wird offiziell unterstützt? 
Das ging doch zuvor nicht oder irre ich mich? Das wäre auf jeden Fall 
eine tolle Neuigkeit!

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


Lesenswert?

Dennis X. schrieb:
> Habe ich das richtig gelesen der JTAGICE 3 wird offiziell unterstützt?

So "offiziell", wie AVRDUDE halt sein kann. ;-)

> Das ging doch zuvor nicht oder irre ich mich?

Es ist keinerlei Dokumentation von Atmel dazu veröffentlicht.  Der Dank
gebührt hier Knut Schwichtenberg, der einiges an reverse engineering
dafür getan hat.  Zwar ist die Kommunikation reichlich verschieden von
den Vorgängern (und gewiss auch nicht alles erraten), allerdings ist
zumindest der wesentliche Ablauf vieler Funktionen nicht so 
grundsätzlich
anders als beim JTAGICEmkII, was die Sache wiederum dann doch hat nicht
ganz so schwer werden lassen.

Ein paar Ecken und Kanten werden sicher noch drin sein, aber vermutlich
mehr auf der Debugger-Seite (AVaRICE) als auf der Programmierer-Seite
(AVRDUDE).

von 900ss (900ss)


Lesenswert?

Weil ich gerade wieder viel damit arbeite:

....
avrdude done.  Thank you.

Das am Ende des AVRdude-Aufrufs finde ich ja sehr freundlich ;)

von Micha H. (mlh) Benutzerseite


Lesenswert?

Etwas spät, weil ich das gerade zufällig aus einem anderem Thread 
entdeckte:

Jörg Wunsch schrieb:
>
>     - The erase cycle counter (formerly options -y / -Y) has been
>       removed.

Warum das denn?

Für mich sieht das wie ein Rückschritt aus. Zum Glück habe ich eine 
5er-Version auf der Platte, diese Option benutze ich nämlich.

Gruß,
Micha

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


Lesenswert?

Micha H. schrieb:
> Warum das denn?

Weil ich keinen einzigen Nutzer mehr finden konnte (hatte bereits
zwei Jahre zuvor mal rumgefragt).

Weil ich in diesem Counter keinen wirklichen Nutzen (mehr) sehe.  Brian
Dean hatte ihn zu Zeiten eines AT90S1200 implementiert, für den damals
nur 1000 Flash-Zyklen garantiert waren.  Als er ihn dann später mal
getestet hatte, war er erstaunt, dass er mehr als 150000 Zyklen
ausgehalten hat.  Damit hatte sich eigentlich schon damals der
ursprüngliche Zweck dieses Counters erübrigt, denn so viel Löschungen
nimmt man im normalen Betrieb ohnehin praktisch nicht vor.

Weil der Counter für seitenweises Modifizieren (JTAGICE oder Dragon
mit Software-BPs, Bootloader, Flash als Datenspeicher) sowieso nie
gegriffen hat.

Weil es in den Protokollierungen recht nervig war, dass immer erstmal
auf dem EEPROM rumgerödelt worden ist, denn gelesen wurde er immer,
auch wenn es gar nicht angefordert worden ist.

Aber wenn dir so viel daran gelegen ist, kann ich ihn als #ifdef auch
gern wieder einbauen.  Dann musst du dir halt deine eigene Version
compilieren; immer noch besser, als ewig auf einer immer weiter
veraltenden Version herumzuhocken.

: Bearbeitet durch Moderator
von Micha H. (mlh) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Micha H. schrieb:
>> Warum das denn?
>
> Weil ich keinen einzigen Nutzer mehr finden konnte (hatte bereits
> zwei Jahre zuvor mal rumgefragt).

Da habe ich wohl gerade blau gemacht ;-)

> Weil ich in diesem Counter keinen wirklichen Nutzen (mehr) sehe.

Ich finde den recht nützlich, weniger wegen der Flashzyklen, sondern als 
Hinweis auf die Zahl der erfolgten Modifikationen.

> Weil es in den Protokollierungen recht nervig war, dass immer erstmal
> auf dem EEPROM rumgerödelt worden ist, denn gelesen wurde er immer,
> auch wenn es gar nicht angefordert worden ist.

Warum dann nicht einfach auch das Lesen von Schalter abhängig machen?

> Aber wenn dir so viel daran gelegen ist, kann ich ihn als #ifdef auch
> gern wieder einbauen.

Lieber das als garnichts. Aber ich fände es schade, eine gute 
Funktionalität zu opfern, auch wenn sie selten genutzt wird.

Danke für Deine Antwort,
Micha

von Konrad S. (maybee)


Lesenswert?

Micha H. schrieb:
>> Aber wenn dir so viel daran gelegen ist, kann ich ihn als #ifdef auch
>> gern wieder einbauen.
>
> Lieber das als garnichts. Aber ich fände es schade, eine gute
> Funktionalität zu opfern, auch wenn sie selten genutzt wird.

Wobei noch anzumerken wäre, dass der Counter nicht bei allen µCs sauber 
funktioniert hat. Wenn ich mich richtig erinnere, dann klappte es z.B. 
beim ATxmega128A1 nicht.

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


Lesenswert?

Micha H. schrieb:
> Aber ich fände es schade, eine gute Funktionalität zu opfern, auch wenn
> sie selten genutzt wird.

Nun, du bist in den 13 Jahren, die es AVRDUDE jetzt gibt, der Erste,
der mir begegnet, der das wirklich nutzt.

Konrad S. schrieb:
> Wenn ich mich richtig erinnere, dann klappte es z.B. beim ATxmega128A1
> nicht.

Bei den Xmegas ist der Schalter sowieso sinnlos, denn da werden die
Seiten per page erase gelöscht und neu beschrieben.  Da müsste man einen
Zähler pro page einrichten. ;-)

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


Lesenswert?

Micha H. schrieb:
>> Aber wenn dir so viel daran gelegen ist, kann ich ihn als #ifdef auch
>> gern wieder einbauen.
>
> Lieber das als garnichts.

Bitte öffne mal bei Savannah einen Feature Request dafür (Bugreport,
als "Feature" deklarieren).  Sonst kann es sein, dass das wieder in
Vergessenheit gerät, bis ich mal dazu komme.

von Micha H. (mlh) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
>
> Bitte öffne mal bei Savannah einen Feature Request dafür (Bugreport,
> als "Feature" deklarieren).

[x] Done.

von Konrad S. (maybee)


Lesenswert?

Jörg Wunsch schrieb:
> Da müsste man

Nene, lass mal gut sein. Ich hab anfangs den Counter benutzt und 
festgestellt, dass mein "Erprobungscontroller", der erstmal alles Neue 
ausprobieren muss, nach über einem Jahr keine 500mal geflasht wurde. 
Seitdem verzichte ich auf die Zählerei und schlafe trotzdem gut. ;-)

von Axel S. (a-za-z0-9)


Lesenswert?

Jörg Wunsch schrieb:
> Micha H. schrieb:
>> Aber ich fände es schade, eine gute Funktionalität zu opfern, auch wenn
>> sie selten genutzt wird.
>
> Nun, du bist in den 13 Jahren, die es AVRDUDE jetzt gibt, der Erste,
> der mir begegnet, der das wirklich nutzt.

Dann wird es wohl Zeit, daß ich mal die Hand hebe. Ich habe das auch 
defaultmäßig aktiviert im "make flash" Target.


XL

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


Lesenswert?

Axel Schwenke schrieb:
> Dann wird es wohl Zeit, daß ich mal die Hand hebe.

OK, zwei. :)

Btw., beim JTAGICE3 habe ich Einzelbyte-Updates noch nicht hin bekommen.
Da müsste man wohl in den Debugmodus, was ich bislang beim AVRDUDE
vermeiden wollte.  Beim JTAGICE mkII hängt die Möglichkeit von
Einzelbyte-EEPROM-Updates davon ab, dass die OCDEN-Fuse gesetzt ist
(offenbar gehen diese Updates bei JTAG immer über die Target-CPU).

von Holger M. (dl2gmh)


Lesenswert?

Hallo Jörg,

meinen ersten Post nehme ich gerne zum Anlass mich für Avrdude mal zu 
bedanken. Ich nutze das Teil seit einigen Jahren auf Win, Mac und Linux.

Was mich aber immer gestört hat war, dass ich den Chiptyp mit angeben 
muss. Nehme ich irgendeinen, dann meckert das Programm "device signature 
= 0xabc; expected signature for <device> is 0x123". Das ist doch 
verkehrt herum, oder nicht? Gäbe es doch nur "auto" oder 
"signature_based"... Spricht was dagegen?

Viele Grüsse
Holger

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


Lesenswert?

Holger M. schrieb:
> Spricht was dagegen?

Ja.

Erstens der Aufbau von AVRDUDE, bei dem device und programmer intern
zuerst da sein müssen.  Man müsste dann erstmal ein dummy device
aufsetzen, nur damit man die Signatur lesen kann, anschließend daraus
den Wert für die -p-Option ermitteln, alles wieder zurückdrehen und
von vorn beginnen.  Oder man müsste die komplette Initialisierungsphase
für die Programmer-Implementierung zweiteilen: eine
Anfangsinitialisierung, Ermittlung der Signatur und des tatsächlichen
Typs, Allozieren des Speichers, dann weitermachen.

Gemessen daran, dass du (bzw. dein Makefile) ja von vornherein weißt,
was du programmieren willst (dem Compiler musst du es ja auch sagen),
wäre das ein ziemlicher Aufwand.

Soll nicht heißen, dass das nicht unmöglich ist, aber ich hätte
dringendere Dinge zu erledigen als das.  Wenn es jemand komplett
rundum implementieren will, kann er sich gern mit mir abstimmen,
damit es dann nahtlos integriert werden kann.

Zweitens die Tatsache, dass verschiedene Controller verschiedene
Prozeduren benötigen.  Historisch war es vor allem der AT90S1200,
dessen ISP-Algorithmus während der Initialisierungsphase noch stark
anders aufgebaut war als der aller Nachfolger.  In der „Neuzeit“ sind
es vor allem die Xmegas, die aus der Rolle fallen: PDI statt ISP, und
eine andere, mit den Megas inkompatible JTAG-Implementierung.  Man
müsste dann also zumindest von vornherein wieder sowas schreiben wie
„-p xmega“, damit intern die Algorithmen entsprechend gedreht werden
können (so ähnlich macht es ja AVaRICE, allerdings ist dort manches
einfacher zu handhaben als bei AVRDUDE).

von Holger M. (dl2gmh)


Lesenswert?

Also ich hoffe das führt jetzt nicht zu weit in diesem 
Veröffentlichungsthread.

Jörg Wunsch schrieb:

> Erstens der Aufbau von AVRDUDE, bei dem device und programmer intern...

Alte, gewachsene Strukturen also.


> Gemessen daran, dass du (bzw. dein Makefile) ja von vornherein weißt,
> was du programmieren willst (dem Compiler musst du es ja auch sagen),
> wäre das ein ziemlicher Aufwand.

Nun ja, bei der ersten Programmierung weiss ich sehr genau, was sich im 
Gerät befindet. Bekomme ich allerdings irgendwann danach eines auf den 
Tisch, so ist das anders. In der Realität sind aufgrund von 
Verfügbarkeiten und gewünschtem Funktionsumfang verschiedene Chips 
verbaut.

Momentan wird deswegen ein aus zwei AvrDude-Aufrufen bestehender Ablauf 
verwendet. Kommt der AVR-ISP mkII zum Einsatz, so lassen sich die 
Befehle zügig nacheinander absenden und ausführen. Der Dragon dagegen 
ist bis zu fünf Sekunden nach dem ersten Aufruf nicht verfügbar. (Ein 
zusätzliches Zeitproblem)


> Soll nicht heißen, dass das nicht unmöglich ist, aber ich hätte
> dringendere Dinge zu erledigen als das.  Wenn es jemand komplett
> rundum implementieren will, kann er sich gern mit mir abstimmen,
> damit es dann nahtlos integriert werden kann.

Eigentlich wollte ich das nicht selber anfassen, denn bei mir ist die 
Zeit genauso knapp. (s.u.)


> Zweitens die Tatsache, dass verschiedene Controller verschiedene
> Prozeduren benötigen.  Historisch war es vor allem der AT90S1200,...

Das ist wertvolles Fachwissen, das Du hast, nicht ich. Meiner Meinung 
nach sollte man in diesem Zuge auch nur Chips berücksichtigen, die 
aktuell in nennenswerten Stückzahlen erhältlich sind.


> ... Man müsste dann also zumindest von vornherein wieder sowas schreiben wie „-p 
xmega“, damit ...

Diese Idee finde ich sehr gut.


Mein Interesse mit dem Thema nach vorne zu kommen, ist schon mal 
geweckt. PN?

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


Lesenswert?

Holger M. schrieb:

> Momentan wird deswegen ein aus zwei AvrDude-Aufrufen bestehender Ablauf
> verwendet. Kommt der AVR-ISP mkII zum Einsatz, so lassen sich die
> Befehle zügig nacheinander absenden und ausführen. Der Dragon dagegen
> ist bis zu fünf Sekunden nach dem ersten Aufruf nicht verfügbar. (Ein
> zusätzliches Zeitproblem)

Liegt an deinem OS und seinem USB-Stack.

Das AVRISPmkII macht am Ende keinen USB-Reset, das JTAGICEmkII (und
der davon abgeleitete Dragon) tun das jedoch.  Danach ist das OS an
der Reihe, das Dingens wieder in den Bus einzusortieren, wofür die
einzelnen Systeme recht unterschiedlich lange benötigen.

> Mein Interesse mit dem Thema nach vorne zu kommen, ist schon mal
> geweckt. PN?

Nur, wenn du konkrete Ideen hast, wie man das personell untersetzen
kann.  Ich kann das auf absehbare Zeit einfach mal nicht abdecken.

von Holger M. (dl2gmh)


Lesenswert?

Der Tip mit dem USB-Reset ist hilfreich, danke. Die Dragons durch AVRISP 
mkII zu ersetzen ist auch viel günstiger und schneller, als alles 
andere...

Nach einem wirklich kurzen Blick in die main.c könnte ich mir das Lesen 
der Signatur in einer separaten Funktion vorstellen. Aber leider kann 
auch ich keine Ressourcen dafür anbieten.

Vielleicht finden sich weitere Interessierte, die dieses Feature auch 
gerne hätten, aber dazu ist ein deutsches Forum möglicherweise etwas zu 
regional.

Trotzdem danke für's Erläutern.

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


Lesenswert?

Holger M. schrieb:
> Nach einem wirklich kurzen Blick in die main.c könnte ich mir das Lesen
> der Signatur in einer separaten Funktion vorstellen.

Naja, du musst durch die Initialisierung des jeweiligen programmers
laufen.  Diese kann sich derzeit aber auf die Annahme verlassen, dass
das device seine Speicherbereiche bereits alloziert hat (deren Größe
ja über die avrdude.conf bekannt ist).

Was man so ungefähr tun müsste ist:

. Erstellen eines dummy device, welches lediglich Speicher für die
  Signaturbytes hat.

. Damit in die Initialisierung des Programmers reingehen.

. Signatur lesen. (*)

. Programmer de-initialieren. (**)

. Dummydevice verwerfen, richtiges device ermitteln und allozieren.

. Programmer damit neu initialisieren.

(*) Alle programmer-Implementierungen müssen kontrolliert werden, dass
sie hier auf noch nichts im device außer dem Speicher für die Signatur
zugreifen.  Insbesondere darf sich der programmer auch nicht den Zeiger
auf die "struct avrpart" (meist "p" genannt) irgendwo cachen, denn der
muss ja hernach nochmal geändert werden.

(**) Hoffen oder besser noch verifizieren, dass alle programmer
tatsächlich mehrfach initialisiert und de-initialisiert werden können.

„Eigentlich“ nicht viel, aber der Teufel steckt erfahrungsgemäß im
Detail.

von Robin K. (r3nk) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Micha H. schrieb:
>> Warum das denn?
>
> Weil ich keinen einzigen Nutzer mehr finden konnte (hatte bereits
> zwei Jahre zuvor mal rumgefragt).

Hallo zusammen, ich hatte die -y Option auch immer gerne in meinen 
Skripten aktiviert. Bin gerade auf der Suche nach dem Grund für das 
Entfernen der Option auf diesen Thread gestoßen. Ich fand das Feature 
ganz hilfreich, um den Überblick zu bewahren. Viel weiter als 100 war 
der Counter aber bei meinen Controllern wohl auch noch nicht gewesen.

von Martin e. C. (eduardo)


Lesenswert?

Hallo,
ich möchte gerne die aktuelle Version von AVRDUDE unter Linux 
kompilieren und installieren, leider klappt nicht!
Kann mich ein Linux Expert helfen?

gemacht habe ich:
1
tar xzf avrdude-6.1.tar.gz
2
cd avrdude-6.1
3
./configure
4
make

bis ./configure läuft alles ok aber bei "make" kommt folgende Fehler:

1
martin@Latitude-E6430:~/Downloads/avrdude-6.1$ make
2
/bin/bash ./ylwrap config_gram.y y.tab.c config_gram.c y.tab.h `echo config_gram.c | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output config_gram.output -- yacc -d 
3
./ylwrap: Zeile 176: yacc: Kommando nicht gefunden.
4
make: *** [config_gram.c] Fehler 127

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

yacc aka bison installieren sollte helfen.

von Martin e. C. (eduardo)


Lesenswert?

Frank M. schrieb:
> yacc aka bison installieren sollte helfen.

aka?
Wo finde ich diese Paket?

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


Lesenswert?

Martin e. C. schrieb:
> Wo finde ich diese Paket?

Da musst du deinen Paketmanager mal fragen.  Wenn ich ein Ubuntu
nehme, tippe ich da "yacc" oder "bison" in die Suche ein, und er
zeigt mir, was er dafür alles hat.

Zu Fuß:
1
sudo apt-get install byacc
2
sudo apt-get install bison

Eins von beiden genügt, aber auch noch den "flex" mit installieren,
falls er es nicht schon ist.

: Bearbeitet durch Moderator
von Martin e. C. (eduardo)


Lesenswert?

Frank M. schrieb:
> yacc aka bison installieren sollte helfen.

yacc und bison installiert, aber aka ??

Jetzt kommt:
1
martin@Latitude-E6430:~/Downloads/avrdude-6.1$ make
2
/bin/bash ./ylwrap lexer.l .c lexer.c -- :  
3
make  all-recursive
4
make[1]: Betrete Verzeichnis '/home/martin/Downloads/avrdude-6.1'
5
Making all in .
6
make[2]: Betrete Verzeichnis '/home/martin/Downloads/avrdude-6.1'
7
/bin/bash ./ylwrap lexer.l .c lexer.c -- :  
8
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-lexer.o -MD -MP -MF .deps/libavrdude_a-lexer.Tpo -c -o libavrdude_a-lexer.o `test -f 'lexer.c' || echo './'`lexer.c
9
gcc: error: ./lexer.c: Datei oder Verzeichnis nicht gefunden
10
gcc: fatal error: no input files
11
compilation terminated.
12
make[2]: *** [libavrdude_a-lexer.o] Fehler 4
13
make[2]: Verlasse Verzeichnis '/home/martin/Downloads/avrdude-6.1'
14
make[1]: *** [all-recursive] Fehler 1
15
make[1]: Verlasse Verzeichnis '/home/martin/Downloads/avrdude-6.1'
16
make: *** [all] Fehler 2
17
martin@Latitude-E6430:~/Downloads/avrdude-6.1$

Was mache ich falsch?

von Martin e. C. (eduardo)


Lesenswert?

Jörg Wunsch schrieb:
> Da musst du deinen Paketmanager mal fragen.  Wenn ich ein Ubuntu
> nehme, tippe ich da "yacc" oder "bison" in die Suche ein, und er
> zeigt mir, was er dafür alles hat.
>
> Zu Fuß:
> sudo apt-get install byacc
> sudo apt-get install bison
>
> Eins von beiden genügt, aber auch noch den "flex" mit installieren,
> falls er es nicht schon ist.

Ok du wars schneller.
Beide sind installiert und flex "ist die neuste Version" (sagt die 
Konsole), trotzdem kommt das obere Fehler.

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


Lesenswert?

Martin e. C. schrieb:
> trotzdem kommt das obere Fehler.

Hast du das configure nach dem Installieren von flex und bison
laufen lassen?

von Martin e. C. (eduardo)


Lesenswert?

Jörg Wunsch schrieb:
> Hast du das configure nach dem Installieren von flex und bison
> laufen lassen?

Ups! ne.
Mache gleich alles noch Mal.

von Martin e. C. (eduardo)


Lesenswert?

Also ganz am Ende kommt:
1
configure: creating ./config.status
2
config.status: creating doc/Makefile
3
config.status: creating windows/Makefile
4
config.status: creating avrdude.spec
5
config.status: creating Makefile
6
config.status: creating avrdude.conf.tmp
7
config.status: creating ac_cfg.h
8
config.status: executing depfiles commands
9
10
11
Configuration summary:
12
----------------------
13
DON'T HAVE libelf
14
DON'T HAVE libusb
15
DON'T HAVE libusb_1_0
16
DON'T HAVE libftdi1
17
DON'T HAVE libftdi
18
DON'T HAVE libhid
19
DO HAVE    pthread
20
DISABLED   doc
21
ENABLED    parport
22
DISABLED   linuxgpio


dann make aber jetzt kommt:

1
/bin/bash ./ylwrap config_gram.y y.tab.c config_gram.c y.tab.h `echo config_gram.c | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output config_gram.output -- bison -y -d 
2
updating config_gram.h
3
/bin/bash ./ylwrap lexer.l lex.yy.c lexer.c -- flex  
4
make  all-recursive
5
make[1]: Betrete Verzeichnis '/home/martin/Downloads/avrdude-6.1'
6
Making all in .
7
make[2]: Betrete Verzeichnis '/home/martin/Downloads/avrdude-6.1'
8
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-config_gram.o -MD -MP -MF .deps/libavrdude_a-config_gram.Tpo -c -o libavrdude_a-config_gram.o `test -f 'config_gram.c' || echo './'`config_gram.c
9
mv -f .deps/libavrdude_a-config_gram.Tpo .deps/libavrdude_a-config_gram.Po
10
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-lexer.o -MD -MP -MF .deps/libavrdude_a-lexer.Tpo -c -o libavrdude_a-lexer.o `test -f 'lexer.c' || echo './'`lexer.c
11
mv -f .deps/libavrdude_a-lexer.Tpo .deps/libavrdude_a-lexer.Po
12
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-arduino.o -MD -MP -MF .deps/libavrdude_a-arduino.Tpo -c -o libavrdude_a-arduino.o `test -f 'arduino.c' || echo './'`arduino.c
13
mv -f .deps/libavrdude_a-arduino.Tpo .deps/libavrdude_a-arduino.Po
14
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-avr.o -MD -MP -MF .deps/libavrdude_a-avr.Tpo -c -o libavrdude_a-avr.o `test -f 'avr.c' || echo './'`avr.c
15
mv -f .deps/libavrdude_a-avr.Tpo .deps/libavrdude_a-avr.Po
16
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-avr910.o -MD -MP -MF .deps/libavrdude_a-avr910.Tpo -c -o libavrdude_a-avr910.o `test -f 'avr910.c' || echo './'`avr910.c
17
mv -f .deps/libavrdude_a-avr910.Tpo .deps/libavrdude_a-avr910.Po
18
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-avrftdi.o -MD -MP -MF .deps/libavrdude_a-avrftdi.Tpo -c -o libavrdude_a-avrftdi.o `test -f 'avrftdi.c' || echo './'`avrftdi.c
19
In file included from avrftdi.c:43:0:
20
avrftdi_private.h:19:2: warning: #warning No libftdi or libusb support. Install libftdi1/libusb-1.0 or libftdi/libusb and run configure/make again. [-Wcpp]
21
 #warning No libftdi or libusb support. Install libftdi1/libusb-1.0 or libftdi/libusb and run configure/make again.
22
  ^
23
mv -f .deps/libavrdude_a-avrftdi.Tpo .deps/libavrdude_a-avrftdi.Po
24
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-avrftdi_tpi.o -MD -MP -MF .deps/libavrdude_a-avrftdi_tpi.Tpo -c -o libavrdude_a-avrftdi_tpi.o `test -f 'avrftdi_tpi.c' || echo './'`avrftdi_tpi.c
25
In file included from avrftdi_tpi.c:16:0:
26
avrftdi_private.h:19:2: warning: #warning No libftdi or libusb support. Install libftdi1/libusb-1.0 or libftdi/libusb and run configure/make again. [-Wcpp]
27
 #warning No libftdi or libusb support. Install libftdi1/libusb-1.0 or libftdi/libusb and run configure/make again.
28
  ^
29
mv -f .deps/libavrdude_a-avrftdi_tpi.Tpo .deps/libavrdude_a-avrftdi_tpi.Po
30
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-avrpart.o -MD -MP -MF .deps/libavrdude_a-avrpart.Tpo -c -o libavrdude_a-avrpart.o `test -f 'avrpart.c' || echo './'`avrpart.c
31
mv -f .deps/libavrdude_a-avrpart.Tpo .deps/libavrdude_a-avrpart.Po
32
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-bitbang.o -MD -MP -MF .deps/libavrdude_a-bitbang.Tpo -c -o libavrdude_a-bitbang.o `test -f 'bitbang.c' || echo './'`bitbang.c
33
mv -f .deps/libavrdude_a-bitbang.Tpo .deps/libavrdude_a-bitbang.Po
34
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-buspirate.o -MD -MP -MF .deps/libavrdude_a-buspirate.Tpo -c -o libavrdude_a-buspirate.o `test -f 'buspirate.c' || echo './'`buspirate.c
35
mv -f .deps/libavrdude_a-buspirate.Tpo .deps/libavrdude_a-buspirate.Po
36
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-butterfly.o -MD -MP -MF .deps/libavrdude_a-butterfly.Tpo -c -o libavrdude_a-butterfly.o `test -f 'butterfly.c' || echo './'`butterfly.c
37
mv -f .deps/libavrdude_a-butterfly.Tpo .deps/libavrdude_a-butterfly.Po
38
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-config.o -MD -MP -MF .deps/libavrdude_a-config.Tpo -c -o libavrdude_a-config.o `test -f 'config.c' || echo './'`config.c
39
mv -f .deps/libavrdude_a-config.Tpo .deps/libavrdude_a-config.Po
40
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-confwin.o -MD -MP -MF .deps/libavrdude_a-confwin.Tpo -c -o libavrdude_a-confwin.o `test -f 'confwin.c' || echo './'`confwin.c
41
mv -f .deps/libavrdude_a-confwin.Tpo .deps/libavrdude_a-confwin.Po
42
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-crc16.o -MD -MP -MF .deps/libavrdude_a-crc16.Tpo -c -o libavrdude_a-crc16.o `test -f 'crc16.c' || echo './'`crc16.c
43
mv -f .deps/libavrdude_a-crc16.Tpo .deps/libavrdude_a-crc16.Po
44
gcc -DHAVE_CONFIG_H -I.  -DCONFIG_DIR=\"/usr/local/etc\"  -Wall -Wno-pointer-sign -g -O2 -MT libavrdude_a-dfu.o -MD -MP -MF .deps/libavrdude_a-dfu.Tpo -c -o libavrdude_a-dfu.o `test -f 'dfu.c' || echo './'`dfu.c
45
dfu.c:39:5: error: conflicting types for ‘dfu_open’
46
 int dfu_open(struct dfu_dev *dfu, char *port_name) {
47
     ^
48
In file included from dfu.c:22:0:
49
dfu.h:117:25: note: previous declaration of ‘dfu_open’ was here
50
 extern struct dfu_dev * dfu_open(char *port_spec);
51
                         ^
52
dfu.c:45:5: error: conflicting types for ‘dfu_init’
53
 int dfu_init(struct dfu_dev *dfu, unsigned short usb_pid) {
54
     ^
55
In file included from dfu.c:22:0:
56
dfu.h:118:12: note: previous declaration of ‘dfu_init’ was here
57
 extern int dfu_init(struct dfu_dev *dfu,
58
            ^
59
make[2]: *** [libavrdude_a-dfu.o] Fehler 1
60
make[2]: Verlasse Verzeichnis '/home/martin/Downloads/avrdude-6.1'
61
make[1]: *** [all-recursive] Fehler 1
62
make[1]: Verlasse Verzeichnis '/home/martin/Downloads/avrdude-6.1'
63
make: *** [all] Fehler 2
64
martin@Latitude-E6430:~/Downloads/avrdude-6.1$

von Martin e. C. (eduardo)


Lesenswert?

Ok es funktioniert vielen Dank.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin e. C. schrieb:
> Ok es funktioniert vielen Dank.

Ja, dass es derzeit nicht ohne libusb geht, ist ein Bug.

von Martin e. C. (eduardo)


Lesenswert?

Jörg Wunsch schrieb:
> Ja, dass es derzeit nicht ohne libusb geht, ist ein Bug.

Ganz genau libusb installiert dann war alles ok.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin e. C. schrieb:
> Frank M. schrieb:
>> yacc aka bison installieren sollte helfen.
>
> aka?
> Wo finde ich diese Paket?

aka oder a.k.a. steht im Englischen als Abkürzung für "also known as" (= 
"auch bekannt als")

Sorry,

Frank

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.