Sublime Texteditor zum Entwickeln von ARM-basierter Software

Bis zu diesem Moment habe ich Atmel Studio verwendet, um Software für AVR-basierte Geräte zu entwickeln. Jetzt möchte ich zu ARM Cortext M wechseln. Außerdem möchte ich Codesign und Versionskontrolle ausprobieren (ich habe noch keine Erfahrung mit diesen nützlichen Dingen).

Ich weiß, dass Atmel Studio das Plugin hat, um mit GitHub-Repositories zu arbeiten. Aber ich habe gerade den Sublime Text 2 Editor erworben, mit dem man sehr gut arbeiten kann. Es ist auch in der Lage, mit GitHub zu arbeiten (wie ich im Internet gelesen habe, ich habe es nur nicht selbst ausprobiert), aber ich bin mir nicht sicher, ob Sublime Text nützlich sein wird, um GCC- und ASM-Quellen in HEX zu kompilieren.

Hat jemand versucht, Sublime Text 2 als Quellbearbeitungstool für solche Implementierungen zu verwenden? Oder traditionelle IDEs werden viel einfacher zu arbeiten sein?

Sublime Text ist ein Editor . Es ist skriptfähig, aber wenn Sie interaktives Debugging wünschen, werden Sie an der Befehlszeile hängen bleiben. Lernen Sie einfach, Makefiles und Build-Skripte zu schreiben.
Außerdem sind Versionskontrolle und Atmel Studio nicht verwandt. Ich verwende SVN für meine Atmel Studio-Projekte, es gibt keinen Grund, warum Sie die Dateien von Atmel Studio (oder Visual Studio, auf dem es basiert) nicht in einem VCS speichern können.
Schließlich ist das "Codesign"? Meinst du Codesignatur ? Das ist für die kleineren ARM-Geräte weitgehend irrelevant, es sei denn, Sie schreiben Ihren eigenen Bootloader, der die Überprüfung übernimmt.
@ConnorWolf Ich habe nicht an das Debugging-Problem gedacht. In diesem Fall ist die traditionelle IDE viel besser als jeder Texteditor. Dank dafür!
Was denkst du, was eine IDE dann tut? Außerdem gibt es separate Debugger, die nicht innerhalb einer IDE ausgeführt werden.
@ConnorWolf Ich nahm an, dass die IDE die folgenden Dinge tut: Intelligente Quellbearbeitung, Handhabung von Bibliotheken, Kompilierung. Sie haben Debugging hinzugefügt, was ebenfalls sehr wichtig ist. Was ist SVN?
SVN ist "Subversion" - ein Versionskontrollsystem, das eher CVS als Git ähnelt.

Antworten (3)

Ja, Sie können SublimeText verwenden, um Quellcode zu bearbeiten, und zwar nicht nur für ARM, sondern für alles; und viele Leute tun. Es ist ein sehr beliebter Quellcode-Editor.

Der schwierige Teil kommt, wenn Sie mehr als nur bearbeiten möchten. Eine traditionelle IDE bietet weit mehr als nur Bearbeitungsfunktionen, sodass Sie die Funktionen, die Sie für die Arbeit mit ARM benötigen, entweder implementieren oder jemanden im Internet finden müssen, der dies bereits implementiert hat. Zu diesen Funktionen gehören nicht zuletzt:

  • Kompilieren der Quelle in binäre Zieldateien (normalerweise ELF-Dateien).
  • Hochladen der kompilierten Firmware in den Chip

Wie Sie das tun würden, hängt in gewisser Weise von Ihrem Host-Betriebssystem ab und davon, welche Skripting-Tools Ihnen für die Aufgaben zur Verfügung stehen. Im Allgemeinen ist der Compiler GCC, der für alle wichtigen Betriebssysteme frei verfügbar ist. Wenn Sie also die richtigen Flags kennen, die Sie beim Kompilieren des Quellcodes für Ihr spezifisches Ziel verwenden müssen, sollte das Erstellen von Skripts für die Kompilierung kein allzu großes Problem darstellen.

Beim Hochladen des Codes hängt jedoch alles davon ab, wie Sie das Hochladen durchführen. Verwenden Sie einen Hardware-Programmierer? Ist auf Ihrem Zielchip ein Bootloader installiert? Welche Tools sind für beide verfügbar, die skriptfreundlich sind und mit denen Sie SublibeText Funktionalität hinzufügen können?

Wenn Sie also keine Online-Ressource finden, in der jemand tatsächlich genau das getan hat, was Sie tun möchten, für denselben Zielchip oder dieselbe Chipfamilie, die Sie verwenden, wird es eine Menge Arbeit sein, um loszulegen. Sie sollten besser mit einer traditionellen IDE beginnen und diese als Vorlage verwenden (untersuchen Sie, wie sie kompiliert und hochgeladen wird) und sie zu SublimeText migrieren oder eine hybride Umgebung betreiben, in der Sie die Bearbeitung in SublimeText vornehmen, aber die IDE zum Kompilieren und Verwenden verwenden laden Sie den Code hoch.

Vielen Dank für diese ausführliche Antwort! Großartig! Können Sie IDE für meinen Fall vorschlagen? Ich kenne nur Atmel Studio und nutze nur einen Bruchteil seiner Funktionalität.
Beachten Sie auch, dass Sublime makeals Build-Tool unterstützt wird, sodass Sie nach einem coolen Makefile zum Kompilieren und Hochladen von ARM googeln und es verwenden können.
Ich verwende für die meisten meiner Projekte keine IDE. Im Allgemeinen ist es eine Art Editor (Kate oder Sublime) und dann verwende ich make, um die Toolchain auszuführen. Ich führe make und git von der Befehlszeile aus, da es sich um Befehlszeilenprogramme handelt. Ich habe Makefiles für AVR-, ARM- und Xilinx-FPGA-Projekte.
Ich verwende eine IDE für meine eingebetteten Projekte, aber das liegt hauptsächlich daran, dass ich die IDE selbst geschrieben habe :) Zum Schreiben der IDE oder für andere PC-Entwicklungen verwende ich vi ;)

Wie andere gesagt haben, ist Sublime ein Editor (ein sehr leistungsfähiger), keine IDE, daher ist die Verwendung von Sublime zum Debuggen umständlich, wenn auch nicht unmöglich (siehe Fußnote unten).

Ich mache jedoch viel Embedded-Programmierung, daher kann es hilfreich sein, meinen Arbeitsablauf zu beschreiben.

Meine gesamte Codierung erfolgt in ST2 mit einigen Schlüsselpaketen:

  • Paketsteuerung : Ich hoffe, es ist keine Beschreibung erforderlich
  • SublimeTODO : zum Verfolgen von TODOs in meinen Projekten
  • BracketHighlighter : zur Unterstützung bei der Visualisierung des Umfangs in C
  • SublimeClang : bei weitem das wichtigste Paket für mich. Dieses hervorragende Plugin bietet Echtzeit-Syntaxprüfung, Code-Verifizierung und Definitions-/Implementierungsfindung. Tatsächlich verlasse ich mich so sehr darauf, dass es mich, da es technisch gesehen nur für ST2 ist, daran gehindert hat, zu ST3 zu wechseln, bis ich versuchen kann, dies zu portieren.

Ich verwende auch benutzerdefinierte Snippets für die Codeformatierung. Sobald meine Codierung bereit ist, auf der Hardware getestet zu werden, verwende ich eine IDE zum Debuggen. Alle Codeänderungen, die ich vornehmen muss, werden jedoch immer noch in Sublime vorgenommen. Manchen mag das unangenehm vorkommen, aber ich habe mich daran gewöhnt.

Was IDEs betrifft, bieten viele der IC-Hersteller ihre eigenen IDEs an (TI, Freescale, Microchip usw.), es gibt jedoch jetzt einige gute und kostenlose ARM-zentrierte IDEs. Em::Blocks habe ich am häufigsten verwendet. Es ist gut gepflegt und eine solide Anwendung. CooCox ist auch ziemlich gut.

Fußnote: Derselbe Entwickler, der SublimeClang erstellt hat, hat auch ein GDB-Plugin ( SublimeGDB ) erstellt, aber zum Debuggen denke ich, dass eine dedizierte IDE mit Speicheransichten, Variablenüberwachungen und Ausdrücken schwer zu schlagen ist.

Vielen Dank, dass Sie dies geteilt haben! Es ist wirklich nützlich! Verwenden Sie VCS in Ihrem Workflow? Wie stellen Sie Ihre Quellen zusammen? GCC?
Danke. Wir verwenden SVN & Git bei der Arbeit, und ich verwende Git für meine eigenen Projekte. Ich habe das aber nie wirklich in Sublime integriert. Ich weiß jedoch, dass viele Leute das tun, und es gibt gute Plugins, die beides unterstützen. Ich kompiliere nicht innerhalb von Sublime – verwende einfach das Clang-Plug-In für die Syntaxprüfung, was mich bis zum Verlinken bringt. Beim eigentlichen Kompilieren verwende ich die IDE, die ich für das jeweilige Projekt verwende. Ich könnte das in den Sublime 'Build'-Befehl einbinden, nehme ich an ...

Seit diese Frage gepostet wurde, und es ist jetzt mehr als 2 Jahre her (Juni 2018), ist ein neuer Editor mit vollem Funktionsumfang auf der Bildfläche erschienen: https://atom.io/packages/language-arm

Atom unterstützt unter anderem die Git-Versionskontrolle out-of-the-box.