Hallo,
bekanntermaßen funktioniert das MCU Type Auswahlmenü unter Project |
Properties | AVR | Target Hardware ja nur, wenn man Eclipse mit
LC_MESSAGES=C im Shell-Enviroment startet, sh.
https://www.mikrocontroller.net/articles/AVR_Eclipse#H.C3.A4ufige_Fehler.
Der Button "Load from MCU" funktioniert allerdings trotzdem nicht, weil
das AVR Eclipse Plugin die Ausgabe von aktuellen avrdude-Versionen nicht
versteht (ebenfalls bekannt). Konkret wurde an "Device signature =
0x??????" "(probably ...)" angehängt.
Gleiches Problem auch bei "Load from MCU" bei den Fuses und Lockbits.
Auch wenn man ohne diese Funktionen leben kann, hier ein Workaround,
getestet mit Eclipse 2019-12 (4.14.0) und dem AVR Eclipse Plugin 2.4.2.
Es geht darum, dem aktuellen avrdude 6.3 wieder die alte Ausgabe von
avrdude 6.0.1 beizubringen:
1 | mkdir tmp
|
2 | cd tmp
|
3 | wget http://download.savannah.gnu.org/releases/avrdude/avrdude-6.3.tar.gz
|
4 | tar -xzvf avrdude-6.3.tar.gz
|
5 | cd avrdude-6.3
|
6 | vi main.c
|
Foldenden Block ab Zeile 1077 auskommentieren:
1 | /*
|
2 | if (quell_progress < 2) {
|
3 | AVRPART * part;
|
4 |
|
5 | part = locate_part_by_signature(part_list, sig->buf, sig->size);
|
6 | if (part) {
|
7 | avrdude_message(MSG_INFO, " (probably %s)", part->id);
|
8 | }
|
9 | }
|
10 | */
|
Und jetzt bauen:
1 | ./configure --sysconfdir=/etc
|
2 | make -j4
|
3 | make check
|
Jetzt sollte der Unterschied in den Ausgaben des originalen und des
selbst compilierten avrdude sichtbar sein:
1 | /usr/bin/avrdude -pm328p -cstk500v2 2>&1 | grep signature
|
2 | ./avrdude -pm328p -cstk500v2 2>&1 | grep signature
|
Bei zweiterem sollte "(probably ...)" nicht mehr vorhanden sein. also
installieren, wobei ich hier make install meide, um meine Installation
nicht durcheinander zu bringen.
1 | strip avrdude
|
2 | sudo cp avrdude /usr/local/bin
|
Und abschließend in Eclipse:
Windows | Preferences | AVR | Path -> AVRDude | Edit | Custom | Custom
Value /usr/local/bin | Ok | Apply
Jetzt sollte "Load from MCU" bei Target Hardware, den Fuses und den
Lockbits funktionieren.
Ich hoffe, das hilft jemandem, weil ich habe hier im Forum schon gaaaaz
viel Hilfe gefunden.
Eigentlich wäre es besser, das AVR Eclipse Plugin anzupassen. Die
Sourcen bekommt man mit
1 | git clone https://git.code.sf.net/p/avr-eclipse/code avr-eclipse-code
|
Die betreffende Regex steckt in
avr-eclipse-code/de.innot.avreclipse.core/src/de/innot/avreclipse/core/t
oolinfo/AVRDude.java, Zeile 360:
1 | Pattern mcuPat = Pattern.compile(".+signature.+(0x[\\da-fA-F]{6})")
|
Allerdings verstehe ich nicht, warum die wegen des " (probably..." nicht
matcht. Ich weiß auch nicht, wie man mit Java aus diesen Sourcen das
Plugin baut. Vielleicht kann das jemand. Oder innot selbst?
Haschi