ARM-Programmierschnittstelle und Toolkette

Ich habe einen RM48L952 erworben, der ein ARM Cortex R4F von TI ist, und ich möchte anfangen, die ARM-Entwicklung mit diesem Chip zu lernen. Meine Frage ist, kann ich einen beliebigen JTAG-Programmierer zum Programmieren verwenden? So etwas wie ein Open DIY JTAG Programmer oder muss es ein markenspezifischer sein? Dasselbe gilt für die Toolkette, kann ich gcc verwenden oder muss ich einen markenspezifischen Compiler verwenden?

Danke

Schauen Sie sich diesen Artikel an, er kann auch hilfreich sein. microcontrollercentral.com/…

Antworten (3)

Über den JTAG benötigen Sie keinen proprietären, es sei denn, das Board, das Sie haben, hat einen proprietären Anschluss. Selbst dann, wenn Sie die Pinbelegung entdecken können, könnten Sie einen Adapterstecker herstellen. Der Hauptunterschied zwischen offenen/freien JTAG-Projekten und einem kommerziellen Produkt besteht darin, dass letzteres wahrscheinlich höhere Geschwindigkeiten haben wird, was je nach Komplexität der Programme einen großen Unterschied macht. Es gibt billige kommerzielle JTAG-Adapter, die parallel/seriell sind, und etwas teurere, die USB sind; Wenn ich die Wahl hätte, würde ich immer USB bevorzugen.

In Bezug auf die Toolchain ist es durchaus möglich, GNU-Tools zu verwenden (siehe gnuarm.com), aber der Nachteil ist, dass Sie eine Dokumentation darüber finden müssen, wie Sie mit der gerätespezifischen Hardware interagieren. Außerdem müssen Sie möglicherweise ein spezielles Link-Skript für die Speicherkarte Ihres Geräts vorbereiten. Je seltener/exotischer es ist, desto unwahrscheinlicher ist es, dass Sie ein bereits erstelltes Skript finden. Und diese Link-Skripte können ziemlich kompliziert sein. Wenn Sie eine speziell auf Ihr Gerät zugeschnittene kommerzielle Toolchain verwenden, finden Sie bereits alles vor, damit es auf dem Gerät funktioniert.

Ich würde auch empfehlen, ein Entwicklungsboard (wie dieses ) für diese MCU zu kaufen ; Es wird viel einfacher sein, alles zum Laufen zu bringen, wenn Sie Teile-und-Herrschen können. Und eine getestete, funktionsfähige Platine ist der beste Weg, um Software- und Hardwareprobleme getrennt zu halten.

Die Anschaffung eines solchen Entwicklungsboards möchte ich am meisten vermeiden, da die Entwicklungskosten dadurch stark steigen. Ich denke, ich muss mir diese Link-Skripte ansehen ...

Sie können OpenOCD als Hardwareprogrammierer/-debugger und die GNU-Toolchain (z. B. Yagarto oder GNU ARM ) für die Softwareseite verwenden. Für Unterstützung siehe Linux Support for the ARM Architecture und Install the GNU ARM toolchain under Linux .

Holen Sie sich das stm32f4 Discovery Board und arbeiten Sie mit den Beispielen. Sie werden genug zu tun haben, ohne zu versuchen, auch ein Board zu entwerfen. Die Entdeckung hat einen eingebauten USB ST-Link2-Programmierer und das Ganze kostet ungefähr 15 Dollar. Coocox ist eine ziemlich gute IDE zum Experimentieren, da sie kostenlos und unbegrenzt ist. Leider ist die Dokumentation scheiße und ihr Forum ist fast nutzlos, da niemand akzeptiert, dass die Autoren in der Lage zu sein scheinen, Fragen zu beantworten, und da sie kostenlos arbeiten, fehlt die Unmittelbarkeit der Antwort. Das heißt, wenn Sie bereit sind, daran zu arbeiten, ist Coocox eine einfache Lösung, wenn Sie Linux nicht zu Ihrer bereits langen Liste der zu lernenden Dinge hinzufügen möchten. ARM ist komplex zu lernen, denn wenn Sie nicht über eine super Fluidität mit Zeigern und Typedef-Strukturen usw. verfügen, müssen Sie beim Erlernen der Hardware auch ein fortgeschrittener C-Programmierer werden. Die CMSIS-Peripheriebibliothek wurde für fortgeschrittene C-Programmierer geschrieben, sodass Sie nicht einmal wissen, was los ist, bis Sie Ihre C-Kenntnisse auf ein anständiges Niveau gebracht haben. Dies ist natürlich meine Sichtweise dazu und trifft möglicherweise nicht zu.

Ich bin mit Linux und C bereits sehr vertraut, was mich stört, ist die ganze Schnittstelle zwischen Code und Chip in ARM.
Ja, ich höre dich. Ich habe viel mit Mikrochip-Geräten gearbeitet, und als ich zum ersten Mal mit ARM begann, war ich überrascht, wie viel Code erforderlich ist, um selbst die einfachsten Aufgaben zu erledigen. Ich wünsche mir einen Kern, der alle Peripheriegeräte und die Geschwindigkeit von ARM hat, aber die Benutzerfreundlichkeit von Microchip.