Elektroniknet Logo

Mikrocontroller

XMOS - der Echtzeit-Prozessor


Fortsetzung des Artikels von Teil 2

XC: XMOS-Erweiterungen für C

Quellcode für einen UART-RX-Treiber.
Listing 1. Quellcode für einen UART-RX-Treiber. Für einen routinierten C-Programmierer ist der Umgang mit XC leicht.
© XMOS

Die für den Entwicklungsingenieur erforderlichen Tools werden sämtlich von XMOS als SDK bereitgestellt. Den Kern bildet eine auf GNU/GCC aufbauende Toolchain inklusive GDB-basiertem Debugger. Die Bedienung erfolgt wahlweise über die im SDK enthaltene IDE oder direkt per Kommandozeile. Per JTAG kann Software direkt getestet werden.

Neben C/C++ stellt die Toolchain XC als Variante von C bereit. XC enthält Erweiterungen zur Behandlung von nebenläufiger Verarbeitung, Kommunikationskanälen und zeitgesteuertem I/O. XC verzichtet auf Pointer, da eine der häufigsten Fehlerursachen in C-Programmen fehlerhafte Pointer sind. Als Ersatz für üblicherweise durch Pointer abgebildete Funktionalität bietet XC beispielsweise Pass-by-Reference-Parameter. XMOS bietet für alle üblichen Schnittstellen Treiber in XC an, der Kunde kann sich direkt auf die Implementierung seiner Applikation konzentrieren. Für einen mit C vertrauten Programmierer ist der Umgang mit XC ein Leichtes (www.xmos.com/published/programming-xc-xmos-devices). Als Beispiel dient ein UART-RX-Treiber (Listing 1), wie er sich ähnlich im XMOS-Manual findet.

Relevante Anbieter

Treiber in C programmiert.
Listing 2. Derselbe Treiber wie in Listing 1, hier jedoch in C statt XC programmiert.
© XMOS

C/C++ und XC können im Projekt beliebig gemischt werden. Sogar eine Programmierung nur in C ist möglich. Zwar verzichtet man damit auf die durchaus hilfreichen Erweiterungen, die XC bereitstellt, aber gerade in Projekten, bei denen Portabilität unverzichtbar ist, kann diese Option von Vorteil sein. Als Beispiel wird der UART-RX-Treiber in C ausprogrammiert (Listing 2).

Für Projekte, die ohne XC auskommen sollen, haben die Autoren nicht nur verschiedene Treiber (z.B. Ethernet und UART) in C implementiert, ebenso auch ein einfaches Betriebssystem (dynamische Prozess- und Speicherverwaltung) mit Netzwerkstack und Shell. Derart konzipierte Projekte lassen sich deutlich schneller und mit wesentlich geringerem Risiko eines Fehlverhaltens (keine Software für Shared Memory, Locking, Power Management) umsetzen als mit anderen 32-bit-Prozessoren.

 

Die Autoren:

Oskar Schirmer
arbeitet als freiberuflicher Software-Entwickler im Bereich Embedded Systems. Seit 25 Jahren in diesem Bereich tätig, gehören sowohl Embedded Linux als auch harte Echtzeit-Systeme zu seinen Spezialgebieten. Das Diplom als Informatiker erhielt er an der Technischen Universität Berlin.
Dipl.-Phys. Peter Börner
ist Mitglied der Embedded-Group und studierte nach seiner Elektroniker-Ausbildung Physik an der Universität Göttingen. Nach Abschluss des Studiums  war er in verschiedenste Projekte als Hardware-naher Programmierer eingebunden. Als Diplom-Physiker war er außerdem in leitenden Positionen wissenschaftlicher und industrieller Projekte tätig, wie beispielsweise das satellitengestützte Infrarot-Observatorium Herschel. Seit sechs Jahren führt er zusätzlich Schulungen im Bereich Embedded-Linux durch.

  1. XMOS - der Echtzeit-Prozessor
  2. Power Management ohne Kunstgriffe
  3. XC: XMOS-Erweiterungen für C

Verwandte Artikel

XMOS