Mit Ada eingebettete Systeme entwickeln

Eingebettete Systeme können in den verschiedensten Varianten auftreten: komplett ohne Betriebssystem, mit einem Echtzeitbetriebssystem wie FreeRTOS oder mit einem umfangreichen Linux-Betriebssystem. Für die ersten Experimente eignen sich Einplatinen-Computer wie der Raspberry Pi, die STM Discovery Boards oder der BBC micro:bit Computer.

Ada auf dem Raspberry Pi

Stellenmarkt
  1. Full-Stack-Entwickler Produktionsanlagen- und Flottenmanagement (w/m/d)
    SEW-EURODRIVE GmbH & Co KG, Bruchsal
  2. (Junior) IT Engineer Directory & Certificate Management (m/w/d)
    ALDI International Services GmbH & Co. oHG, Mülheim an der Ruhr
Detailsuche

Der einfachste Einstieg in die Welt der eingebetteten Systeme stellt der Raspberry Pi dar. Man kann die Ada Compiler entweder über apt-get installieren und die Programme lokal auf dem Raspberry Pi entwickeln oder sich die Entwicklungsumgebung für den Raspberry Pi von Adacore herunterladen und die Programme auf einem Host Computer entwickeln (zum Zeitpunkt des Schreibens dieses Artikels funktionierte der Download bei Adacore allerdings nicht).

Die Entwicklung von Anwendungen für solche Plattformen ist natürlich relativ einfach, weil alle Standardfunktionen vorhanden sind. Es müssen nur Bibliotheken für die hardwarenahen Komponenten hinzugefügt werden. Das lässt sich schnell realisieren, indem man eine C-Bibliothek wie pigpio benutzt und in Ada eine Brücke zu den C-Funktionen implementiert. Hier als Beispiel eine einfache Schnittstelle zu den wichtigsten GPIO-Funktionen von pigpio:

  1. -- raspberry_pi_gpio.ads
  2.  
  3. package Raspberry_Pi_GPIO is
  4. INPUT: constant Integer := 0;
  5. OUTPUT: constant Integer := 1;
  6. LOW: constant Integer := 0;
  7. HIGH: constant Integer := 1;
  8. function Initialize return Integer;
  9. pragma Import (C, Initialize, "gpioInitialise");
  10. procedure Set_Mode(pin: Integer; mode: Integer);
  11. pragma Import (C, Set_Mode, "gpioSetMode");
  12. procedure Write(pin: Integer; value: Integer);
  13. pragma Import (C, Write, "gpioWrite");
  14. function Read(pin: Integer) return Integer;
  15. pragma Import (C, Read, "gpioRead");
  16. end Raspberry_Pi_GPIO

Golem Akademie
  1. Hands-on C# Programmierung
    28.-29. Oktober 2021, online
  2. Netzwerktechnik Kompaktkurs
    8.-12. November 2021, online
  3. C++ 20: Concepts - Ranges - Coroutinen - Module
    14.-18. Februar 2022, online
Weitere IT-Trainings

Man kann jetzt die eingebundenen Funktionen im Hauptprogramm nutzen:

  1. -- hello.adb
  2. with Raspberry_Pi_GPIO; use Raspberry_Pi_GPIO;
  3. procedure Hello is
  4. LED_PIN: constant Integer := 12;
  5. begin
  6. if Initialize >= 0 then
  7. Set_Mode(LED_PIN, OUTPUT);
  8. loop
  9. Write(LED_PIN, HIGH);
  10. delay 10.0;
  11. Write(LED_PIN, LOW);
  12. delay 10.0;
  13. end loop;
  14. end if;
  15. end Hello

Der GNAT User's Guide beschreibt, wie die Programme übersetzt werden.

Bare Metal Ada

Für die Entwicklung von Ada-Anwendungen auf Zielarchitekturen ohne Betriebssystem (Bare Metal) kann man von der Adacore-Webseite für zahlreiche Plattformen die benötigten Tools und Libraries herunterladen.

Das sind zum einen die Entwicklungsumgebung GNAT Studio und die Ada-Cross-Compiler für ARM oder RISC-V Prozessoren. Die Ada Drivers Library enthält die Low-Level-Bibliotheken für die unterstützten Prozessoren sowie Ada-Laufzeitumgebungen für diverse Entwicklungsplattformen wie die STM32F4 Discovery Boards, BBC Micro:bit oder HiFive1. Außerdem sind hier zahlreiche Beispiele für den Einstieg zu finden.

Programmierung sicherer Systeme mit Rust: Eine Einführung

Braucht man eine angepasste Laufzeitumgebung oder will für eine nicht unterstützte Plattform entwickeln, kann man den Sourcecode aus der Bibliothek bb-runtimes herunterladen. Eine Liste von weiteren frei verfügbaren Tools und Libraries enthält die Ada-Information-Clearinghouse-Webseite. Wer noch einen Schritt weiter gehen möchte und Ada für die Betriebssystem-Entwicklung nutzen möchte, der sollte die Webseite wiki.osdev.org/Ada_Bare_bones besuchen. Sie enthält ein komplettes Beispiel für den Einstieg.

Wer einfach nur Spaß haben möchte, sollte sich den BBC micro:bit Mikrocontroller ansehen. Adacore hat ein mehrteiliges Tutorial für die vielen Funktionen des sympathischen Lerncomputers geschrieben. Die Entwicklungsumgebung zu installieren dauert etwa 15 Minuten und die Programme können direkt von der IDE auf dem micro:bit geflasht werden.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
  • C, Ada und Rust im Vergleich (Tabelle: Karsten Lüth)
  • Die Ada-Entwicklungsumgebung GNAT Studio (Screenshot: Karsten Lüth)
Die Ada-Entwicklungsumgebung GNAT Studio (Screenshot: Karsten Lüth)
 Rust hat das einzigartige Feature des Ownership-ModellsMit Rust eingebettete Systeme entwickeln 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7.  


Aktuell auf der Startseite von Golem.de
Klimaforscher
Das Konzept der Klimaneutralität ist eine gefährliche Falle

Mit der Entnahme von CO2 in den nächsten Jahrzehnten netto auf null Emissionen zu kommen, klingt nach einer guten Idee. Ist es aber nicht, sagen Klimaforscher.
Von James Dyke, Robert Watson und Wolfgang Knorr

Klimaforscher: Das Konzept der Klimaneutralität ist eine gefährliche Falle
Artikel
  1. Elektroauto: Xiaomis Autoproduktion startet Anfang 2024
    Elektroauto
    Xiaomis Autoproduktion startet Anfang 2024

    2024 sollen erste Elektrofahrzeuge von Xiaomi auf den Markt kommen - also etwas später als zunächst gedacht.

  2. M1 Pro/Max: Dieses Apple Silicon ist gigantisch
    M1 Pro/Max
    Dieses Apple Silicon ist gigantisch

    Egal ob AMD-, Intel- oder Nvidia-Hardware: Mit dem M1 Pro und dem M1 Max schickt sich Apple an, die versammelte Konkurrenz zu düpieren.
    Eine Analyse von Marc Sauter

  3. Werbeversprechen kassiert: Teslas Solarschindeln sind doch nicht so stabil
    Werbeversprechen kassiert
    Teslas Solarschindeln sind doch nicht so stabil

    Tesla hat die Website zu seinen Solarschindeln aktualisiert. Die Behauptung, dass diese dreimal stärker als Standardschindeln sind, wurde fallengelassen.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Cyber Week: Bis zu 16% auf SSDs & RAM von Adata & bis zu 30% auf Alternate • 3 Spiele für 49€: PC, PS5 uvm. • Switch OLED 369,99€ • 6 Blu-rays für 40€ • MSI 27" Curved WQHD 165Hz HDR 479€ • Chromebooks zu Bestpreisen • Alternate (u. a. Team Group PCIe-4.0-SSD 1TB 152,90€) [Werbung]
    •  /