Forum: Compiler & IDEs AVR Eclipse: Load from MCU


von Hartmut S. (haschi)


Lesenswert?

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

von J. V. (janvi)


Lesenswert?

>Ich weiß auch nicht, wie man mit Java aus diesen Sourcen das
>Plugin baut. Vielleicht kann das jemand. Oder innot selbst?

Das Gleiche interessiert mich gerade für das IntelliJ Plugin

https://github.com/IntelliJIdeaKeymap4Eclipse/IntelliJIdeaKeymap4Eclipse

Momentan krieg ich nicht mal das Hello World Beispiel von hier

https://www.codeproject.com/Tips/893547/How-to-Create-Your-Own-Eclipse-IDE-Plug-in

zum Laufen

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.