Mikrocontroller-Programmierung: Brauche ich die IDE des Herstellers?

Ich interessiere mich sehr für den folgenden ARM Cortex-M0 Mikrocontroller:

http://www.nxp.com/products/microcontrollers/cortex_m0_m0/lpc1100/LPC11U24FBD48.html#overview

Ich bin jedoch abgeschreckt bei dem Gedanken, ihre Entwicklungssoftware lizenzieren zu müssen, die ich hier gefunden habe: http://www.lpcware.com/lpcxpresso

Habe ich Optionen? Mein Ziel ist es, ein benutzerdefiniertes Entwicklungsboard basierend auf diesem Mikrocontroller oder einem ähnlichen (Cortex-M0/M3) zu entwerfen und über (Micro-)USB programmieren zu können. Ehrlich gesagt würde ich lieber ARM-Assembler schreiben – und wahrscheinlich in der Lage sein, gute Open-Source-Sachen zu finden, um mir den Einstieg zu erleichtern – als eine proprietäre IDE verwenden zu müssen.

Danke für jede Hilfe; auch offen für Alternativen basierend auf meinen Zielen.

Um deine Frage zu beantworten: Fast nie. Ich habe zwar keine Alternative für xCORE-Tools gefunden, aber sie haben mich auch nicht wirklich dazu gebracht, nachzusehen.
Oh? Haben Sie Beispiel-Tutorials zur Verwendung einer Open-Source-Toolchain für die Entwicklung auf einem ARM Cortex M0?
Nein, ich habe ARM noch nicht erkundet (warte immer noch auf mein Board in der Post). Aber spontan würde ich ein Makefile schreiben, das GCC entsprechend aufruft und das Tool zum Hochladen über ISP/JTAG aufruft.
github.com/dwelch67/stm32f0d und das build_gcc-Verzeichnis müssen Sie nur binutils erstellen, nicht gcc, wenn Sie eine Assemblierung wünschen.

Antworten (4)

Die kostenlose GCC-Toolchain unterstützt ARM/Cortex problemlos. Vorkompilierte Versionen sind überall im Internet zu finden, oder Sie können Ihre eigenen erstellen. Sie könnten Assembler machen, wenn Sie möchten, aber ich würde mindestens C vorschlagen, persönlich mag ich C++ noch besser, weil es sehr effiziente Bibliotheken ermöglicht.

Die Dinge, die den Compiler „herumhängen“, können etwas kniffliger sein. Ich habe meine eigenen Make-Skripte, Linker-Skripte, Startcode und einige Support-Bibliotheken geschrieben. Das erfordert etwas fundiertes Wissen, ist aber nicht so viel Arbeit (zumindest für die ersten paar Chips). Ich verwende hauptsächlich die LPC DIP-Chips LPC1114FN28 und LPC810M021FN8.

Ich bin kein Fan der "schweren" IDEs. Ich verwende hauptsächlich PSPpad, aber das Make-Skript kann mit jedem Editor verwendet werden, der ein Shell-Skript aufrufen, die Ausgabe abfangen und eine (GCC-)Fehlermeldung analysieren kann.

Ich bin kein Fan von Debuggern, ich füge lieber print-Anweisungen ein. Ich verwende lpc21isp zum automatischen seriellen Herunterladen + Terminalemulation. Funktioniert OK, außer dass ich lpc21isp patchen musste, um den Chip nach dem Herunterladen zurückzusetzen (anstatt den ISP GO-Befehl zu verwenden, der auf Cortex defekt ist. Schuld auf NXP, dass Sie dies nicht behoben haben!).

Einen Artikel darüber, wie ich C++ verwende, finden Sie hier .

In etwa zwei Wochen werde ich meine Umgebung für meinen C-on-LPC1114-Kurs auf den neuesten Stand bringen. Die letztjährige Version finden Sie hier .

Ja, Sie haben viele Möglichkeiten. Ich programmiere seit Jahren Cortex-M0- und Cortex-M3-Prozessoren von NXP und ST mit Open-Source-Tools. ARM unterhält eine Version von gcc, die auf launchpad.com querkompiliert wird . Sie können Eclipse als IDE verwenden. Um es richtig zu machen, benötigen Sie eine Single-Wire-Debugging-Schnittstelle. Ich verwende den Segger JLink, aber dafür gibt es auch andere Optionen.

Vor einiger Zeit habe ich eine Arbeit darüber geschrieben, wie ich all dies zusammenfüge, um einen Mikrocontroller-Kurs zu unterrichten. Es gibt auch viele nützliche Informationen unter Yet Another GNU ARM Toolchain .

Wow süß! Ihr Papier scheint genau das zu sein, wonach ich suche, sogar mit derselben MCU. Eine kurze Frage - wenn ich einem ähnlichen Schaltplan ( Soldersplash.co.uk/docs/DipCortexSchematic1.3.pdf ) als Ausgangspunkt folge, könnte ich mit der Drag-and-Drop-Dateimethode direkt über USB programmieren in seinen Blitz?
Entschuldigung, ich kenne die LPC11Uxx-Prozessoren nicht. Sie können nach einem ähnlichen Board von Olimex oder einem der LPCXpresso-Boards suchen und sicherstellen, dass der USB-Anschluss auf die gleiche Weise angeschlossen ist. Während Sie über USB programmieren können , schränkt dies Ihre Möglichkeiten zum Debuggen wirklich ein. Die Verwendung von gdb über die SWD-Schnittstelle ist ziemlich großartig.
@JoeHass Würden Sie diese Kombination von Open-Source-Tools auf eine vergleichbare Ebene mit Toolchains wie Code Red oder Sourcery Codebench oder Keil für die kommerzielle Entwicklung stellen (wo Zeit definitiv Geld ist und Optimierung ziemlich wichtig sein könnte)?
@SpehroPefhany Dies ist nicht der Ort, um Meinungen zu kommerziellen Produkten abzugeben ... Ich werde nicht darauf eingehen. Was den Kompromiss zwischen Zeit und Geld betrifft, scheint das OP mehr von ersterem und weniger von letzterem zu haben.
@JoeHass Okay, ich habe diese Antwort irgendwie erwartet. Als ich das letzte Mal nachgesehen habe, war es wirklich schwierig, Kopf-an-Kopf-Vergleiche zu finden, sowie schwer zu findende Tutorials wie Ihres. Danke für die Bereitstellung. Ich werde im Usenet nachfragen und auf Ihre Arbeit verweisen, wenn Sie nichts dagegen haben.

Die meisten, wenn nicht alle IDEs sind Präsentationsgeräte für Editoren, Makefiles, Compiler, Linker und Debugger, die bequem eingebaut sind, aber die Befehlszeilendetails der Operation verbergen, so dass Sie nicht darüber nachdenken müssen. Sie legen normalerweise die Details offen, die Sie ändern oder ersetzen können, sodass Sie fast die IDE Ihrer Wahl mit jeder Toolchain verwenden können, auf die Sie Zugriff haben, wie z. B. das gcc-Set, auf das Wouter Bezug nimmt.

LPCXpresso ist ein Eclipse-basiertes Frontend für einen Build der arm-non-eabi-gcc-Toolchain sowie einige andere Kleber, Bibliotheken, Demos usw.

Eine kostenlose Lizenz mit moderatem Code-Limit ist durch Registrierung erhältlich.

Aber NXP ist nicht Eigentümer von Eclipse oder GCC, abgesehen von ihren eigenen Modifikationen, und für GCC zwingt die Lizenz sie sogar dazu, Ihnen den Quellcode für die genaue Version zur Verfügung zu stellen, die sie verwenden. Sie können GCC auch keine rechtlichen Nutzungsbeschränkungen auferlegen (dh sie könnten eine Beschränkung der Codegröße in ihrer angepassten Quelle hinzufügen, aber Sie können dies auch auskommentieren - obwohl die Beschränkung möglicherweise überhaupt nicht im Compiler enthalten ist).

Die Verwendung von LPCXpresso scheint völlig optional zu sein - der enthaltene GCC-Build kann von der Befehlszeile aus verwendet werden, und die IDE scheint sogar Makefiles zu generieren, mit denen Sie Ihr Projekt neu erstellen können, ohne die IDE erneut auszuführen, vorausgesetzt, Sie geben den Speicherort des Compilers an. Sie sollten auch in der Lage sein, genug davon zu lernen, um Projekte von Grund auf neu zu erstellen, ohne die IDE überhaupt auszuführen.

Es ist wahrscheinlich, dass der Upstream-arm-gcc in der Lage wäre, auf die Chips abzuzielen; Wenn nicht, könnte eine entschlossene Person herausfinden, was in den GCC-Quellen von NXP und vorgelagert geändert wurde.