SEQUIOA

SEQUIOA ist ein Bytecode-Interpreter für die C-ähnliche Programmiersprache SQC

Über SEQUOIA

Der SEQUIOA SQC-Interpreter kann auf x86- und ARM-Systemen betrieben werden und ist speziell für den Einsatz in Embedded Devices konzipiert. Durch die VM ist das Programm vom restlichen System isoliert und kann nur über klar definierte Schnittstellen mit Hardware und Betriebssystem interagieren. Ein Verändern der potenziell sicherheitskritischen Grundfunktionen des Gerätes ist somit nicht möglich. Darüber hinaus unterstützt SEQUIOA statische Funktionsbibliotheken. Hardware-Anbieter können so neue Funktionen an ihre Kunden ausliefern, ohne den Quellcode herausgeben zu müssen.

SQC - Der SEQUIOA C-Dialekt

SQC ist eine kleine, vereinfachte Untermenge der bekannten und weitverbreiteten Programmiersprache C. Obwohl SQC bewusst klein gehalten ist, unterstützt sie weite Teile der C-Syntax. C gilt als relativ leicht zu erlernen und ist durch ihre maschinennahen Datentypen und Funktionen hervorragend für die Hardware-Programmierung geeignet. Neben der Anwendungsentwicklung kommt sie vor allem für Betriebssysteme, Hardwaretreiber und optimierte Funktionsbibliotheken zum Einsatz. Durch den reduzieren Sprachumfang und die statische Typisierung, ist SQC schneller und Speicher-effizienter als andere Bytecode-interpretierte Sprachen wie Python oder Perl. Zu den grundlegenden Sprachelementen gehören:


Built-in-Funktionen und Bibliotheken

Für eine bessere Performance verfügt SQC über einen grundlegenden Satz fest in den Interpreter eingebauter Funktionen. Zusätzlich ist eine externe Bibliothek mit IML-Objektdateien für das statische Linking enthalten. Die Built-ins umfassen neben wichtigen C-Funktionen wie malloc() und strlen() viele weitere Funktionen für die Programmierung eingebetteter Systeme. Dazu zählen:


Die Bibliothek erweitert den Funktionsumfang um Routinen für String-Manipulation, mathematische Berechnungen und den Umgang mit CRC- und SHA-Prüfsummen. Eigene Objektcode-Dateien lassen sich leicht zur Standard-Bibliothek hinzufügen.

Die SEQUIOA-IDE - Integrierte Entwicklungsumgebung für SQC

SEQUIOA liefert einen vollständigen Werkzeugsatz mit Präprozessor, Compiler, Linker und Interpreter für die Kommandozeile. Darüber hinaus ist eine einfache grafische Entwicklungsumgebung für die SQC-Programmierung enthalten. Die SEQUIOA-IDE (Integrated Development Environment) läuft auf Windows-Systemen und kombiniert Editor, Entwicklungstools und Debugger in einer übersichtlichen Programmoberfläche. Sie unterstützt mit vielen nützlichen Funktionen bei Programmierung, Projektverwaltung, Fehlersuche und Upload zum Zielsystem.

Editor und Projektverwaltung

Zentrale Komponente der IDE ist ein Texteditor, der mit allen gängigen ISO- und Unicode-Formaten sowie mit Unix-, Macintosh- und Windows-Textdateien zurechtkommt. Die Entwicklungsumgebung organisiert alle zusammengehörigen Code-Dateien in Projekten. Um auch umfangreiche Programme zu managen, ist ein Projekt-Explorer enthalten, in dem sich Dateien hinzufügen, entfernen und öffnen lassen. Der Editor basiert auf dem Multiple-Document-Interface mit Tabs, die einen schnellen Zugriff auf die geöffneten Dateien erlauben. Wie bei vielen modernen Code-Editoren ist die Möglichkeit zur Code-Faltung (Folding) enthalten. Sie ermöglicht das Ein- und Ausklappen von Funktionen und Code-Blöcken für einen schnellen Überblick und das zielgerichtete Editieren in umfangreichen Quelltexten. Hinzu kommt eine über Strg-Space bequem erreichbare Vervollständigung für Built-in-Funktionen und Schlüsselwörter, die beim Erlernen der Sprache hilft.

SEQUOIA IDE

Zu den weiteren Funktionen gehören:


SEQUOIA IDE

Kompilieren, Debugging und Upload

Wie in jeder integrierten Entwicklungsumgebung sind neben dem Editor weitere Funktionen für die Programmierung enthalten. Der Code lässt sich direkt in der Anwendung kompilieren sowie im eingebauten Simulator ausführen und debuggen. Für die Fehlersuche stehen verschiedene Werkzeuge bereit. Das Setzen von Haltepunkten (Breakpoints) ermöglicht ein gezieltes Anhalten des Programms an bestimmten Stellen, um den anschließenden Code schrittweise auszuführen. Durch das Hinzufügen von Variablen zur Watchlist, lassen sich die Veränderungen der Variablen nach jedem Ausführungsschritt genau untersuchen. Darüber hinaus ist eine Speicheransicht (Memory View) eingebaut, die einen detaillierten Einblick in den Speicher des Programms erlaubt. Dadurch vereinfacht sich vor allem die Fehleranalyse von dynamisch mit malloc() reservierten Speicherblöcken.


SEQUOIA IDE

Um das Programm schlussendlich auf das Zielgerät zu übertragen, sind Funktionen für Firmware-Update, Software-Upload und Autostart-Anpassung eingebunden. Dazu baut die IDE eine Netzwerkverbindung zum Gerät auf, die sich manuell konfigurieren oder über eine Netzwerk-Suche automatisch erkennen lässt.

Einsatzbereiche

Embedron SEQUIOA ermöglicht viele verschiedene Einsatzzwecke. Bestehende Embedded Devices lassen sich um individuelle, kundenspezifische Programme erweitern, ohne die vorhandene Software umschreiben oder ersetzen zu müssen. Da SQC-Anwendungen die wichtigen Low-Level-Funktionen des Systems nicht verändern können, bleiben betriebskritische Funktionen wie Sensor-Kalibrierung, präzise Zeiterfassung und ähnliches unangetastet.

Die vorstellbaren Einsatzbereiche umfassen:


SEQUIOA lässt sich auch hervorragend auf der ARM-basierten Hardware-Plattform Embedtron SQ-1 einsetzen. Sie richtet sich vor allem an Hardware-Anbieter, die ein leistungsstarkes und flexibles System für den Aufbau kostengünstiger und individuell programmierbarer Embedded Devices suchen.


Lernvideos

(1) Hello World mit SEQUOIA.

Erste Schritte mit der Entwicklungsumgebung.
Projekt anlegen, Kompilieren und ausführen.

(2) Datentypen.

Datentypen, Formatierung bei printf.
Watch-Fenster Benutzung.

(3) Funktionen und Pointer.

Benutzung von rekursiven Funktionen
Pointer als Funktionsparameter.

(4) Bibliotheken und Objektdateien.

Erstellen von Bibliotheken
und einbinden von Objektdateien im Programm.


Hier geht es zur WebHelp Anleitung


Downloads :

SEQUOIA-IDE Latest version


Download