Forum: Compiler & IDEs Qt Creator + SEGGER J-Link für ARM Cortex-M verwenden? (Unter Linux)


von No Y. (noy)


Lesenswert?

Hallo Forum,

hat jemand schon Erfahrung damit, was ich genau beim Qt Creator 
einstellen muss, um den mit meinem J-Link zu benutzen. Und vor allem was 
ich wo einstellen muss um mit dem Qt-Creator Code für die ARM Cortex-M 
hinzubekommen? Sollte doch gehen?

Warum ich das ganze mache? -> Ich bin mittlerweile von Windows 
(Keil/Coocox) auf Linux (Fedora 20) umgestiegen. Hier würde ich gerne 
nicht unmengen verschiedener IDE's benutzen, sondern möglichst alles mit 
Qt machen.

Habe mittlerweile das Segger Linux Package und das arm-none-eabi von 
Fedora installiert. Qt natürlich auch.

Qt funktioniert für die Desktop Programmierung schon. Aber wie bekomme 
ich es nun für die ARM Cortex ans laufen? Perfekt wäre es wenn ich die 
Makefiles,Libaries von Coocox benutzen könnte.

Achja es geht hauptsächlich um die STM32 und um ein paar Luminary Micro.
Cortex M0-M4F.

Für meine 8-Bit Pics benutze ich MPLAB das läuft schönerweise sofort 
unter Linux, genauso wie unter Windows... Warum gibts sowas nicht auch 
für ARM?

Achja, später würde ich gerne noch Cross-Compiling für ein Beaglebone 
haben. Aber das müsste mit dem Qt-Creator relativ leicht gehen.

Hat jemand bereits Erfahrungen und kann mir weiterhelfen?

: Bearbeitet durch User
von Kaj (Gast)


Lesenswert?

No y. schrieb:
> was
> ich wo einstellen muss um mit dem Qt-Creator Code für die ARM Cortex-M
> hinzubekommen?
Aus deiner QT-Applikation einfach den ARM-Compiler mit den 
entsprechenden Parametern aufrufen?!

No y. schrieb:
> Hier würde ich gerne
> nicht unmengen verschiedener IDE's benutzen, sondern möglichst alles mit
> Qt machen.
Willst du dir deine eigene IDE schreiben oder was?

Sorry, aber ich verstehe deine Frage nicht.

Alternativ Google und die QT Dokumentation:
https://qt-project.org/doc/qtcreator-2.5/creator-tool-chains.html

Grüße

von No Y. (noy)


Lesenswert?

Wie bekomme ich z.B meinen J-Link mit Qt ans laufen? Also z.B den 
GDB-Server.

Muss ich noch großartig was einstellen oder einfach nur mein gcc-arm- 
none-eabi einbinden? Z.B kann ich Makefiles von CooCox irgendwie 
benutzen? Habe selber noch nie Makefiles für Cortex-M erstellt...

Und dann gehts noch um Linux und nicht einfach nur Windows...

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Wie bekomme ich z.B meinen J-Link mit Qt ans laufen? Also z.B den
> GDB-Server.

Indem du mal schaust was Segger an Treiber und Doku für Linux 
bereitstellt und die dann in den Creator integrierst. Sollte eigentlich 
nicht so schwer sein wenn Segger grundsätzlich eine funktionierende 
Basis liefert.

> Muss ich noch großartig was einstellen oder einfach nur mein gcc-arm-
> none-eabi einbinden?

Du musst noch einiges einstellen. Und deine Frage zeigt das du noch 
nichtmal das grundlegende Konzept verstanden hast. Bringe erstmal alles 
durch eingaben in eine Shell ans laufen damit du verstehst was da in 
welcher Reihenfolge passieren muss.

> Z.B kann ich Makefiles von CooCox irgendwie
> benutzen? Habe selber noch nie Makefiles für Cortex-M erstellt...

Es ist sehr schade das du dich noch nie mit Makefiles beschäftigt hast. 
Stellen sie doch eine ueberlegende und elegante Art einer 
Entwicklungsumgebung dar, welche dir ausserdem so ganz nebenbei das 
Wissen vermittelt haette das dir jetzt fehlt. :-)
Allerdings weiss ich nicht was du jetzt mit Makefiles willst. Sowas wie 
Qt-Creator wurde entwickelt um den Linux und Commandozeilen-fernen 
Schichten ein einfaches Leben zu ermöglichen. Wenn Makefiles 
erforderlich sind so wird sie der Creator selber erzeugen. Eventuell 
koennte sogar hier ein Problem lauern weil qt in der Vergangenheit 
jedesmal ein spezielles Makefile, angepasst an die Beduerfnisse von Qt, 
erzeugt hat.

> Habe selber noch nie Makefiles für Cortex-M erstellt...

Ich dagegen habe schon sehr viele Makefiles erstellt und konnte da noch 
nie eine Prozessorabhaengigkeit, von der compilerauswahl mal abgesehen, 
beobachten.

> Und dann gehts noch um Linux und nicht einfach nur Windows...

Also ich hab ja die Theorie das Linux diesesmal einfach ist.

Olaf

von No Y. (noy)


Lesenswert?

Naja vielleicht habe ich mich mit Makefiles vertan. Ich meine die Files 
wo drin steht wo z.B. die Start Adresse des Controllers ist usw. Bei 
Coocox muss man ja auch auswählen was für einen Prozessor man hat und 
der läd dann irgendwelche Files und CMSIS Sachen abhängig vom 
ausgewählten Controller.

Wenn Linux und ARM Programmierung einfach ist, warum gibt es immer nur 
ordentliche Windows Tutorials und nichts einfaches mal für Linux.

Z.B wenn ich den Pfad zum Compiler einstelle erkennt der den nicht. Dnk 
Linux gibt es ja nicht einen Ordner sondern die Dateien sind unter /usr 
überall verteilt...

Welchen Ordner muss ich denn nun genau angeben in Qt?

Und beim GDB erkennt er das genauso wenig. Obwohl da wenigstens alles in 
einem Ordner liegt.

: Bearbeitet durch User
von lex (Gast)


Lesenswert?

Es ist sehr löblich dass du eine IDE suchst die du für alles verwenden 
kannst.
Ich selbst halte das auch so und verwende Eclipse für wirklich alles... 
(C, C++, Java, C++ mit Qt, avr-gcc usw).
Denn es erleichtert das Leben schon Ungemein, sich nicht jedesmal an 
eine neue IDE, neue Shortcuts usw. gewöhnen zu müssen.

Dennoch halte ich den Qt Creator für einen wenig geeigneten Kandidaten 
einer universellen IDE. Ich hab zwar schon oft gehört dass er auch sehr 
gerne benutzt wird um reines C++ ohne Qt zu programmieren. Aber ich 
denke, für Controlleranwendungen wirst du ihn noch ein ganz schönes 
Stück verbiegen müssen.
Der Qt Creator ist eben für ein primäres Ziel (Qt-GUIs) ausgelegt.

In Eclipse kannst du dir ein leeres "Makefile"-Projekt erstellen. Dabei 
hält sich Eclipse aus allem komplett raus, für jeden Compiler- und 
Linkeraufruf bist dann nur du selbst verantwortlich, indem du die 
Kommandos im makefile hinterlegst.
Alles was von Eclipse noch bleibt ist der (meines Erachtens) sehr 
mächtige Editor mit Syntaxhighlighting, AutoFormatter, 
Autovervollständigung, Indexer usw. Achja, und ein graphisches Frontend 
für gdb.

Ich denke der Qt Creator bietet diese Möglichkeiten auch irgendwie. Aber 
dazu musst du erstmal ein eigenes makefile erstellen können.
Denn der Qt-Creator wird dir beim generierten Makefile wohl kaum die für 
einen uC benötigten Compileroptionen usw. mit eintragen...

Bei 1000 befragten Programmierer tauchen zwar mit Sicherheit 2000 
Lieblings-IDEs auf, dennoch möchte ich dir raten, dir mal Eclipse 
anzuschauen.

von Christian J. (chrisj) Benutzerseite


Lesenswert?

Das fand ich letztens ziemlich interessant und will das irgendwann mal 
mit einen STM32 Discovery Board ausprobieren:

https://fosdem.org/2014/schedule/event/qtcreator_baremetal_development/
http://doc-snapshot.qt-project.org/qtcreator-3.0/creator-developing-baremetal.html

Ich habe aber auch einen J-Link hier rumliegen und in Fedora 19 lässt 
sich unter Help->About Plugins auch schon das BareMetal Plugin 
aktivieren. Jetzt müssen nur noch die passenden Befehle ins Makefile. 
Ich würde aber direkt OpenOCD benutzen und nicht Segger's Linux Package.

von No Y. (noy)


Lesenswert?

Danke für die Links werde ich mir mal anschauen.


@lex:
Eclipse habe ich auch schon überlegt. Ich kenne Eclipse von der Altera 
Nios2 Entwicklungsumgebung aber das war da absolut schrecklich 
(andauernd irgendwelche Fehler... nach 3 mal neu Starten o.ä. ging 
wieder alles). Deswegen hat mich Eclipse bisher eher abgeschreckt. Gut 
da ist eine alte Version drin und vielleicht hat auch Altera da einiges 
verpfuscht...


Dann habe ich auch mal versucht eine neue Version von Eclipse parallel 
zu der Nios2 IDE laufen zu lassen... die haben sich gegenseitig 
zerschossen..

Bisher benutze ich Qt Creator für standard C Konsolen Programme geht 
1a...

Naja vielleicht versuche ich es doch nochmal mit Eclipse...

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Eclipse habe ich auch schon überlegt. Ich kenne Eclipse von der Altera
> Nios2 Entwicklungsumgebung aber das war da absolut schrecklich
> (andauernd irgendwelche Fehler... nach 3 mal neu Starten o.ä. ging
> wieder alles). Deswegen hat mich Eclipse bisher eher abgeschreckt.

Da warst du aber aus den falschen Gruenden abgeschreckt. Bei mir laeuft 
Eclipse relativ stabil. Kann mich so auf anhieb garnicht an einen 
Absturz erinnern obwohl ich es unter unterschiedlichen Betriebssystemen 
mit unterschiedlichen Compilern und verschiedenen Debuggern nutze.

Abschreckend an Eclipse sind zwei Dinge:

1. Es ist lahm. Dem kann man aber noch durch einen schnellen Rechner 
etwas entgegenwirken. Trotzdem nervt es manchmal.

2. Du kannst wirklich alles, aber auch alles einstellen. Aber verteilt 
an den unterschiedlichsten Stellen. Teilweise geradezu absurd 
unuebersichtlich.

Olaf

von TriHexagon (Gast)


Lesenswert?

Nicht Qt-Projekte können nur mit qmake und cmake realisiert werden. D.h. 
du musst dich in eines der Tools einarbeiten, dort Compilernamen etc. 
ändern. Im QtCreator schreibst du dann ganz normal das cmake- bzw. 
qmakefile und er parst dieses, so erkennt er dann welche Headerdateien 
du nutzt und so weiter. Es müsste eigentl. problemlos möglich sein. Du 
brauchst halt dann noch den GDB Server für deinen µC, der müsste in der 
IDE auch einzustellen sein. Beim ST-Link und STM32 ist das z.B. OpenOCD 
oder st-util.

von Stefan (Gast)


Lesenswert?

> Es müsste eigentl. problemlos möglich sein.

Tolle Wortwahl ;).

QMake verwendet Templates um damit zusammen mit der Projektdatei 
Makefiles (oder was auch immer) zu erzeugen. Es gilt also ein solches 
Template zu generieren. Unter /usr/share/qt4/mkspecs findest du eine 
stattliche Sammlung fertiger Dateien. "arm-none-eabi-gcc" ist freilich 
nicht dabei.

Was das Debugging angeht sehe ich allerdings schwarz. Ich fürchte ohne 
einen wilden Hack wird das nicht gehen. Wenn überhaupt.

von No Y. (noy)


Lesenswert?

Was haltet Ihr denn von Netbeans?

Ist ja die IDE hinter MPLABX.

Bisher bin ich damit relativ zufrieden. Vor allem ist Netbeans 
anscheined schneller als Eclipse. Qt geht anscheinend auch. Muss mal 
schaun ob man MPLABX erweitern kann oder ob ich Netbeans nochmal extra 
installieren muss.

Sonst gibts noch Codeblocks aber da bin ich nicht ganz so überzeugt 
von...

: Bearbeitet durch User
von psp-nutzer (Gast)


Lesenswert?

Qt-Creator kann auch mit Makefiles umgehen. Selbst schreiben ist eh 
besser! GDB nennt sich "remote debugging" und funzt einwandfrei mit 
STM32.

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.