Entscheidungshilfe: Linux-SOM oder Mikrocontroller?

Wann is es sinnvoll auf ein Linux-SOM (System on Module) zu setzen? Dieser Frage wird hier Stichpunktartig nachgegangen:

  • Rechtfertigen hohe Stückzahlen hohe Entwicklungskosten, um an der Hardware zu sparen? Wenn nein: Bei geringen Stückzahlen ist die Optimierung der Entwicklungskosten wirtschaftlicher, möglich durch den Einsatz von GNU/Linux in der SOM-Bauweise.
  • Ist die zu entwickelnde Anwendung groß genug (+ zukünftige Features), dass sich das Einsparungspotential mit GNU/Linux rechnet?
  • Das SOM ist ein Zukaufteil und beinhaltet die ausgelagerte Komplexität, sodass nur eine Basisplatine nötig ist, welche auch für ein Mikrocontroller-Board notwendig ist.
  • Umfangreiche Sicherheitsfeatures sind in GNU/Linux bereits vorhanden, beispielsweise lassen sich REST-APIs über HTTPS einfach realisieren. Auch Secure-Boot und signierte und/oder verschlüsselte Dateisysteme sind konfigurierbar.
  • Linux bietet von Haus aus viele Treiber und einfache Abstraktionen, zum Beispiel Treiber für Displays (auch für einfache/günstige Displays mit SPI Schnittstelle), WLAN, CAN ISOTP, Sensoren und Regulatoren.
  • Entwicklungskosten auf einem Linux-SOM sind geringer, da mehr Ressourcen (zum Beispiel RAM, CPU, Flash) zur Verfügung stehen und dadurch die Realisierung der Anwendung einfacher ist. Bei Mikrocontrollern wird es schnell knapp mit Flash, Arbeitsspeicher und Rechenleistung.
  • GNU/Linux bietet ein ganzes Ökosystem an Bibliotheken, Serviceprogrammen, Datenbanken, Treibern und Abstraktionen, so können Anwendungen auch in Skriptsprachen implementiert werden und selbst rechenintensive Features noch Jahre später eingebaut werden.
  • Eventuell schon vorhandene Algorithmen können aus der Mikrocontroller-Welt in die Linux-Welt migriert werden, umgekehrt ist es aufwendiger.
  • Ansprechende HMIs (Human-Machine-Interfaces) lassen sich „Smartphone-mäßig“ unter GNU/Linux leichter aufbauen.
  • GNU/Linux ist von Haus aus ein Netzwerkbetriebssystem: Externe Datenbanken können für Cloud-Features direkt angebunden werden.
  • Die Bootzeit liegt bei einfach optimierten Linux-Systemen unter 10 Sekunden, bei sehr gut optimierten unter einer Sekunde.
  • Containerbauweise möglich: Stichwort Docker-Containern-on-the-Edge.
hexDEV Embedded Software Entwicklung und Wartung