Gespräch mit dem Cortex M3 (Stellaris EKS-LM3S1968) unter Linux

Ich habe ziemlich viel gesucht, aber keinen einfachen (ish) Weg gefunden, Programme unter Linux auf den Cortex M3 zu laden.

Ich habe versucht, die summon-arm-toolchain https://github.com/esden/summon-arm-toolchain/ zu verwenden , aber es gab Probleme beim Herunterladen einer ihrer Abhängigkeiten.

Kennt jemand noch andere Möglichkeiten?

Was brauchen Sie? Ein CCompiler, ein Flash-Tool oder ein Debugger?
Ein C-Compiler und ein Flash-Tool, nehme ich an, nicht so besorgt über einen Debugger.

Antworten (2)

Der CCompiler, den ich für meinen Cortex M3 verwende, ist Soucery Codebench Lite Edition . Es gibt einige Alternativen wie YAGARTO . Sie müssen ein Linker-Skript schreiben (oder finden), das zu Ihrer MCU passt.

Sie möchten auch das CMSIS- Paket für Ihre MCU. Das enthält alle Registerdefinitionen.

Zum Flashen und Debuggen verwende ich OpenOCD , dies ermöglicht die Verwendung von GDB als Frontend für beide Aufgaben. Das EKS-LM3S1968-Board wird mit einem von OpenOCD unterstützten JTAG-zu-USB-Chip geliefert .

OK, ich habe es endlich zum Laufen gebracht, also für alle anderen, die sich das ansehen, sind hier die Schritte zum Arbeiten mit OpenOCD unter Ubuntu Linux (vorausgesetzt, Sie haben Ihr Mikroprogramm kompiliert). 1) sudo apt-get install openocd

ARM JTAG ist halbstandardisiert und verfügt über viele offene Hardware- und Softwareimplementierungen.

Aber wie bei vielen vergleichbaren Geräten haben Sie auch eine kostengünstigere Option:

Der serielle Flash-Loader von Stellaris ® ist ein vorprogrammiertes Flash-residentes Dienstprogramm, das zum Herunterladen von Code in den Flash-Speicher eines Geräts ohne Verwendung einer Debug-Schnittstelle verwendet wird. Der serielle Flash-Loader verwendet eine einfache Paketschnittstelle, um eine synchrone Kommunikation mit dem Gerät bereitzustellen. Der Flashloader läuft außerhalb des Quarzes und aktiviert die PLL nicht, daher wird seine Geschwindigkeit durch den verwendeten Quarz bestimmt. Die beiden verwendbaren seriellen Schnittstellen sind die Schnittstellen UART0 und SSI0. Der Einfachheit halber sind sowohl das Datenformat als auch das Kommunikationsprotokoll für beide seriellen Schnittstellen identisch.

Mit anderen Worten, alles, was Sie wirklich brauchen, ist eine serielle Schnittstelle mit konfigurierbarer Baudrate und etwas Software, die die im folgenden Teil des Datenblatts beschriebene Datenübertragung implementiert (derzeit unter http://www.ti.com/lit/ ds/symlink/lm3s1968.pdf ) Es wäre eine Websuche wert, um zu sehen, ob es bereits eine Open-Source-Implementierung eines kompatiblen Ladeprogramms gibt.

Für Ihr Toolchain-Problem sollte das GCC-Downloadpaket von Code Sourcery wahrscheinlich funktionieren, Sie benötigen nur ein Linker-Skript, das für das Speicherlayout des Teils geeignet ist, das Sie wahrscheinlich mit einer Websuche nach Projekten finden können, die auf dieses Teil abzielen, das von anderen Open-Tools-Enthusiasten erstellt wurde .

Ich glaube, ich verstehe, was Sie sagen - also bin ich nicht an Debug-Funktionen interessiert, ich könnte einfach den seriellen Flash-Loader verwenden und den JTAG insgesamt umgehen? Wäre es trotzdem möglich, das über den USB-Anschluss des Boards zu tun?
Sie würden wahrscheinlich einige Boot-Modus-Pins ändern und den USB-Anschluss ignorieren, es sei denn, es geht um einen USB-Seriell-Chip. Wenn das Board bereits über einen integrierten USB-Debugger verfügt, könnte Ihr Problem darin bestehen, dass Sie kompatible Software benötigen - manchmal werden integrierte Debugger-Protokolle zurückentwickelt und in Open-Source-Tools neu implementiert, wenn genügend Interesse an dem Evaluierungsboard besteht (z es wird als Verlustbringer verkauft, um das Interesse am Chip zu wecken)