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.
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 .
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.
Ignacio Vazquez-Abrams
JDS
Ignacio Vazquez-Abrams
Oldtimer