Eclipse Archives - Technik - Blogbasis.net https://technik.blogbasis.net/tag/eclipse Die Basis des freien Wissens – Technik Fri, 14 Mar 2014 18:00:21 +0000 de hourly 1 https://wordpress.org/?v=6.8.1 Wenn eclipse nach ein paar Zeilen Code abstürzt. https://technik.blogbasis.net/wenn-eclipse-nach-ein-paar-zeilen-code-abstuerzt-14-03-2014 https://technik.blogbasis.net/wenn-eclipse-nach-ein-paar-zeilen-code-abstuerzt-14-03-2014#respond Fri, 14 Mar 2014 18:00:21 +0000 http://technik.blogbasis.net/?p=1050 Ich hab mich letztens mal wieder an eine Android App gewagt. Dafür dann die ADT runtergeladen und daraus eclipse gestartet. Nach wenigen Zeichen bzw. Zeilen Code stürzte Eclipse aus unerklärlichen Gründen ab. Zum Glück gibt es einen kurzen Fix dafür.

Eclipse stürzte mit der folgenden Fehlermeldung ab:

gehaxelt@LagTop ~/android/eclipse % ./eclipse 
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f51b3dacbd1, pid=10934, tid=139991535183616
#
# JRE version: OpenJDK Runtime Environment (7.0_51-b31) (build 1.7.0_51-b31)
# Java VM: OpenJDK 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libsoup-2.4.so.1+0x6fbd1]  soup_session_feature_detach+0x11
#
# Core dump written. Default location: /home/gehaxelt/android/eclipse/core or core.10934
#
# An error report file with more information is saved as:
# /home/gehaxelt/android/eclipse/hs_err_pid10934.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
#   http://icedtea.classpath.org/bugzilla
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
./eclipse  21,39s user 1,54s system 85% cpu 26,746 total

Im Bugtracker von Eclipse gibt es dafür einen Workaround:

Man muss einfach in die „eclipse.ini“ folgenden String eintragen:

-Dorg.eclipse.swt.browser.DefaultType=mozilla

Danach sollte Eclipse wieder ohne Probleme laufen. Zumindest hatte das bei mir geholfen.

Viele Grüße,

~Sebastian

]]>
https://technik.blogbasis.net/wenn-eclipse-nach-ein-paar-zeilen-code-abstuerzt-14-03-2014/feed 0
Entwickeln mit Arduino https://technik.blogbasis.net/entwickeln-mit-arduino-30-09-2013 https://technik.blogbasis.net/entwickeln-mit-arduino-30-09-2013#respond Sun, 29 Sep 2013 23:49:30 +0000 http://technik.blogbasis.net/?p=895 In letzter Zeit habe ich angefangen mit Arduino zu spielen. Arduino bezeichnet eine Menge verschiedener Mikrocontroller. Das Anfängerboard ist der Arduino-Uno. Das ist ein einfaches Board mit dem man einige Pins ansteuern kann und den Mikrocontroller einfach über USB flashen kann. Das gibt es aber schon öfter. Das eigentlich tolle am Arduino ist die gute Untestützung für Anfänger und die nähe zu Open Source und Open Hardware. Dardurch werden viele Dinge erstaunlich einfach. An Leser die Windows nutzen: Ich schreibe zwar hier und da Linux-Terminaleingaben hin- Das ist aber nichts tiefes und Arduino kann man auch sehr gut mit Windows benutzen.

Besonders gefallen hat mir das anfangen: Auf meinem Debian musste ich einfach nur

sudo apt-get install arduino

eingeben und schon konnte ich den Arduino-Uno über USB ansprechen. Die Energieversorgung läuft praktischer Weise auch gleich über USB. Also einfach nur mit dem USB-Kabel anschließen und die Arduino-IDE starten. Schon kann man einfache Testprogramme nutzen. Die Programme werden in C++ geschrieben.

 

Als nächstes hab ich mir dann Fritzing installiert.

sudo apt-get install fritzing

Fritzing ist ein Programm mit dem man einfach Schaltpläne entwerfen kann. Es ist vor allem geeignet um sich über seine Arduino-Projekte auszutauschen. Auch hier wieder Open-Source (sogar GPL).

Da die Arduino-IDE nun sehr schlicht gehalten ist wünscht man sich bei größeren Projekten vielleicht eine umfangreichere IDE. Ich hab Eclipse genommen (weil ich das schon kenne und weil es freie Software ist). Für Eclipse(CDT) installiert man sich einfach dieses Plugin. Die weitere Installation ist auf der verlinkten Seite beschrieben. Das klappt eigentlich ganz gut.

 

Weil ich aber dazu noch einen USB-zu-MIDI Stecker genutzt habe hat der Zugriff auf den Seriellen Port nicht so toll geklappt. Ich habe aber nicht so richtig verstanden warum. Egal, man kann den seriellen Port auch einfach direkt vom Terminal aus sehen:

cu -l /dev/ttyUSB0 -s 31250

cu ist das Programm Call up. Damit kann man Serielle Ports also die Signale vom Arduino auslesen. /dev/ttyUSB0 ist das Gerät von dem die Ausgaben ausgelesen werden können. Wie es heißt kann man z.B. herausbekommen indem man schaut auf welches Gerät die Arduino-IDE nutzt. Hinter der Option -s kommt die Geschwindikeit. Die geht aus dem Programmcode selber hervor (hier 31250):

void setup() {
// Set baud rate:
Serial.begin(31250);
}

Nunja, man kann natürlich auch alles mit dem Terminal machen. Das Programm avrdude wird hier nützlich sein. Mir hat jemand erzählt er Programmiert grundsätzlich nur mit VIM. Kann man natürlich auch machen. :-)

 

 

 

 

 

 

 

]]>
https://technik.blogbasis.net/entwickeln-mit-arduino-30-09-2013/feed 0
EFM 32 Starter Kit unter Linux mit Eclipse benutzen https://technik.blogbasis.net/efm-32-starter-kit-unter-linux-mit-eclipse-benutzen-08-06-2013 https://technik.blogbasis.net/efm-32-starter-kit-unter-linux-mit-eclipse-benutzen-08-06-2013#respond Sat, 08 Jun 2013 22:15:43 +0000 http://technik.blogbasis.net/?p=605 Das Starterkit für ist ein Entwicklerbord um Anwendungen für den Mikrocontroller EFM 32 zu entwickeln. Normalerweise werden diese Anwendungen als C-Programme geschrieben. Um neue Programme auf dem Gerät zu testen muss man diese erst passend kompilieren und dann auf das Gerät flashen. Es ist sehr nützlich wenn diese Zwischenschritte von einer Entwicklungsumgebung wie Eclipse abgenommen werden. Das hier soll eine möglichst kurze Schritt für Schritt Anleitung zum einrichten eines Projektes auf Eclipse unter Linux sein. 

Voraussetzungen

Ich hatte ich folgende Voraussetzungen:

  • ein EFM 32 Starter Kit (in meinem Fall ein EFM32GG-STK3700)
  • ein installiertes Debian 7, Xubuntu(also Ubuntu)
  • das Eclipse IDE (wenn man das noch nicht hat sollte man es Installieren, auch CDT installieren)
  • eine 64 bit Architektur 
  • dieses Tutourial (in weiten Teilen habe ich das nur übersetzt)

Die Verbindung mit der Hersteller Software testen

Als erstes legt man sich ein Unterverzeichnis in seinem Home-Verzeichnis an.

mkdir ~/edev
cd ~/edev

Dann wird mit wget die Herstellerumgebung runtergeladen und anschließend entpackt(dabei entsteht automatisch ein energymicro Unterverzeichnis)

wget http://cdn.energymicro.com/dl/packages/studio_linux.tar.gz
tar xzvf studio_linux.tar.gz

Dann wird das Simplicity Studio über gestartet. 

./energymicro/studio.py

Probleme auf 64-Bit Systemen

Weil es sich um ein 32-Bit Programm handelt kann es passieren, dass das Programm nicht ausgeführt wird. Hier muss man dann die fehlenden 32-Bit Bibliotheken nachinstallieren. Unter Xubuntu hat bei mir folgendes geholfen, unter Debian 7 wurde es etwas aufwändiger, weil es erstmal nicht einfach über die Paket-Installation geklappt hatte.

sudo apt-get install libreadline5:i386

Man sollte beim nachinstallieren von 32bit Bibliotheken lieber vorsichtig sein weil es dabei zu mittelschweren Problemen kommen kann. Es wird berichtet das das installieren des Paketes libicu48:i386 zu viel Ärger geführt hat.

Die passenden Beispiele herunterladen

Am besten mal lädt sich erstmal alles. Einfach auf Add/Remove klicken.

Simlicity Studio

 

Die passenden Tools bekommen

Die Tools sind bei Linux nicht direkt in das Simplicity Studio integriert. Deswegen muss man sie sich nochmal herunterladen. 

cd ~/edev 
wget http://cdn.energymicro.com/dl/packages/energyAwareTools_25052012.tgz 
tar xzvf energyAwareTools_25052012.tgz 
cd energymicro 
wget http://cdn.energymicro.com/dl/packages/energyAwareCommander_linux_pkg_2.72-beta.tar.gz
tar xzvf energyAwareCommander_linux_pkg_2.72-beta.tar.gz 
cp eACommander/eACommander bin
cp eACommander/JLinkExe bin 
cp eACommander/JLinkGDBServer bin
cp eACommander/libjlinkarm.so.4 lib/libjlinkarm.so.4

Auch hier kann es wieder nötig sein 32-bit Bibilotheken nachzuinstallieren. 

 

Eine erste Verbindung zum Gerät

Um das Gerät als normaler Benutzer nutzen zu können müssen erstmal die passenden Berechtigungen gesetzt werden.

sudo cp doc/45-jlink.rules /etc/udev/rules.d/
sudo groupadd plugdev
sudo usermod -a -G plugdev  

Danach muss dann erstmal das System neugestartet werden.

Dann kann man denn eAware Manager testen. Dafür verbindet man erstmal das Gerät und startet dann den eAware Manager.

cd ~/edev/energymicro
./eACommander.sh

Hier sollte jetzt ein Gerät erkannt werden

.energyAware

Wenn man glück hat kann man auch gleich schon mal eine Demo auf das Gerät flashen. Bei mir hat das geklappt.

Ein Projekt unter Eclipse einrichten

Jetzt braucht man eine Toolchain. Hier wird Eclipse + CodeSourcery ARM EABI Toolchain vorgeschlagen.

cd ~/edev
wget https://sourcery.mentor.com/GNUToolchain/package10926/public/arm-none-eabi/arm-2012.09-63-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
mkdir ~/edev/bin
tar xjvf arm-2012.09-63-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 -C ~/edev/bin

Wenn das fertig ist werden die Erweiterungen für Eclipse installiert. Im Menü klickt man unter „Help > Install New Software“. In dem sich öffnenden Fenster sollte man mit dem Pfeil links neben Add.. die Indigo Updates auswählen können. Ansonsten gibt man „http://download.eclipse.org/releases/indigo/“ manuell in das „Work with:“ Feld ein. Dort wählt man dann unter Mobile and Device Development”das Feld “C/C++ GDB Hardware Debugging” aus. Danach geht es mit „Next“ weiter und den Anweisungen folgen.

Software installieren

Danach kann man ein Eclipse-Projekt anlegen. Entweder wählt man den Projekt Button (New-Project) oder geht über  „File>New Project“. Dann wählt man ein normales C Projekt.C-Projekt

 

Dann Wählt man als den Dateipfad (Location) einen Pfad zu den Beispielen die mit dem Simplicity Studio runtergeladen wurden. /home/<Benutzer>/edev/energymicro/kits/<name des Kits (steht auf der Packung)> /examples/blink. In Meinem fall hies das Kit EFM32GG_STK3700.

New C-Project

Jetzt müssen noch einige Einstellungen vogenommen werden damit es funktioniert.

Pfad anpassen

  • C/C++ Build:  build directory als  ${workspace_loc:/blink/codesourcery} einstellen. (unter Xubuntu hatte das nicht funktioniert und man musste die volle Dateisystem Variable eingeben)
  • C/C++ Build->Discovery Options: Haken bei Automatic discovery of paths and symbols entfernen.
  • C/C++ Build->Settings: Prüfen ob der GNU Elf Parser gewählt ist.

Wenn alles eingestellt ist: „OK“ klicken.

Dann kopiert man Makefile.blink und nennt es um in Makefile. Im neu erstellten Makefile ersetzt man die Zeile die mit LINUXCS anfängt durch folgende.

LINUXCS    ?= ~/edev/bin/arm-2012.09/

Makefile anpassen

Jetzt das Makefile abspeichern und kompellieren.

 Debugmodus einstellen

Wenn so weit alles gut aussieht können jetzt die debug Einstellungen vorgenommen werden. Erstmal muss aber der J-Link Server gestartet werden. Dafür schliesst man erstmal das Gerät über den J-Link Anschluss an (wenn man den kleinen Schalter auf DBG gestellt hat braucht man auch nur ein Kabel) und gibt dann folgendes ein:

cd ~/edev/energymicro
./gdbserver.sh

In Eclipse klickt man dann „Run>Debug Configuration“ . Dann mit rechtsklick auf GDB Hardware Debugger einen neuen Debugger erstellen. Im dardurch geöffneten Tab klickt man dann auf den Blau unterlegten Text in der Linken unteren Ecke und stellt den Standart GDB Launcher ein.

Select other

GDB Standart wählen

 

In den anderen Tabs stellt man dann folgendes ein:

  • Debugger Tab: den ganzen Pfad zu arm-none-eabi-gdb in  „GDB Command“ eingeben . ( also /home/<Benutzer>/bin/arm-2012.09/bin/arm-none-eabi-gdb)
  • Debugger Tab: noch prüfen ob  Use remote target mit Generic TCP/IP JTAG Device und localhost als Host name gewählt ist, und 2331 als Port number setzen.
  • Startup Tab: Im Initialization Commands Feld folgendes eingeben:
    set tdesc filename target-m3.xml
    mon speed 4000
    mon endian little
    mon flash download = 1
    mon flash device = EFM32TG840F32
    mon reset 1
  • Startup Tab (möglicherweise runterscrollen): Set breakpoint at: Häkchen machen und ins Feld „main“ eingeben
  • Common Tab:  Debug in „Display in favorites menu“ abhaken.

Wenn man jetzt auf Debug klickt kommt man in den Debugmodus dort klickt man dann auf „Resume (F8)“ oder gleich F8.

Dann sollte es wie Folgt aussehen:

Debugmodus

Wenn man jetzt nochmal F8 drückt blinken die User-LEDs abwechselnd.

EFM32

Irgendwie arbeitet Eclipse bei mir noch nicht sauber mit dem SEGGER J-Link GDB Server zusammen. Immerhin geht es überhaupt. Auf Windows ging das einrichten des Simplicity Studios in etwa drei Klicks. Die Linux unterstützung ist noch nicht ganz so cool.

Wenn es noch nicht funktioniert

Viele Probleme lagen bei mir an mangelnder 64-Bit unterstützung wenn in den Fehlermeldungen dann etwas über fehlende Libaries steht kann man zu diesen mit „apt-file find“ passende Pakete suchen die man dann mit einem „:i386“ hinter dem Paketnamen installiert. CNXSoft warnt davor „libicu48:i386“ zu installieren.

 

 

 

 

]]>
https://technik.blogbasis.net/efm-32-starter-kit-unter-linux-mit-eclipse-benutzen-08-06-2013/feed 0