Deutsch English

PC-Simulierte Embedded Software Umgebung

Embedded Software ist gebunden an eine spezifische Hardwareumgebung. Der benutzte Microcontroller, die angeschlossene Elektronik und die Projektanforderungen bestimmen den Umfang und die Komplexität der embedded Software.

Die grosse Hardwareabhängigkeit der embedded Software ist eine Herausforderung für jeden Projektleiter und Mitarbeiter, da die Hardwareentwicklung und die Softwareentwicklung sich gegenseitig beeinflussen. 

Um diese Abhängigkeiten zu entkoppeln, bietet sich die Möglichkeit, mittels einer simulierten Hardware die embedded Software zu entwickeln. Damit spart man Zeit, Kosten und Nerven.

 

    Eine PC-Simulierte Embedded Software Umgebung mit Visual Studio besteht grundsätzlich aus drei Teilen:

    • "Echter" Embedded Software Code (meist in C/C++)
    • Kapselung und Anbindung an die Simulation (C/C++ native)
    • Simulation mit GUI (managed C#)

     

    "Echter" Embedded Software Code

    Damit ist der Software Code gemeint, der schlussendlich auf einem Microcontroller läuft, welcher in einer speziellen Hardwareumgebung eingebettet ist. 

    Als Programmiersprache dient C/C++.

    Damit dieser Code für eine Simulation geeignet ist, braucht das Software Design zwingend eine strikte Trennung zwischen hardware-spezifischem Code und nicht-hardware-spezifischem Code. 

    z.B. muss der Zugriff auf Microcontroller Registern zwingend in separaten Kompiliereinheiten programmiert sein. Man spricht hier von HAL (Hardware Abstraction Layer).  

    Diese HALs werden für die Simulation nicht verwendet. Stattdessen braucht es als Ersatz sogenannte Mocks, welche die "echten" HALs ersetzen.

    Kapselung und Anbindung

    Damit der "echte" embedded Code mit der Simulation kommunizieren kann, muss dieser mittels einer separaten Software an die Simulation angebunden werden.

    Dies geschieht durch native C/C++ Funktionen und den HAL Mocks, welche die Schnittstelle zur Simulation abbilden.

    Diese ganze Anbindung mit dem dazugehörigen Embedded Code werden als Windows DLL kompiliert und gelinkt. 

     

    Simulation

    Die eigentliche Simulation läuft in einer managed C# .NET Umgebung.

    Dies ermöglicht alle Vorzüge einer GUI Programmierung zu nutzen. Zudem kann mittels der riesigen .NET Bibliothek auf den kompletten PC zugegriffen werden.

    Beispiele

    • Simulation einer persistenten Datenablage mittels schreiben/ lesen von Dateien.
    • Simulation eines SPI Näherungssensors durch Windows Forms Bedienelemente. 
    • Simulation einer Funkverbindung mittels PC UDP Datenübertragung. 

     

     

    Unit Test

    Für eine seriöse Software Entwicklung werden Unit Tests immer wichtiger. Jedoch sind Unit Tests von Embedded Software aufwendig und kostspielig. 

    Durch die Einbindung der embedded Software in die Visual Studio Simulation erhällt man eine Unit Testumgebung quasi kostenlos dazu. 

    Der eingebundene embedded Code lässt sich direkt als Unit testen und protokollieren.  

     

     

    Eicher Engineering
    Janahofstrasse 12
    CH-8722 Kaltbrunn SG
    Switzerland

    Tel +41 (0)79 363 66 35
    infonoSpam@eichereng.ch
    © Copyright 2026 Eicher Engineering