Deutsch English

PC-Simulated Embedded Software Environment

Embedded software is bound by a specific hardware environment. It depends on the used microcontroller, the connected electronic, the project requirements. They also determine the complexity and scope of the embedded software.

The great hardware dependence of the embedded software is a challange for every project leader and engineer. Hardware and software development interact with each other. 

A simulated hardware allows to encouple this dependence. This saves time, costs and nerves.

 

    A PC-simulated embedded software environment with Visual Studio generally consits of three parts:

    • "Real" embedded software code (native C/C++)
    • Encapsulation and connection to the simulation
    • Simulation with GUI (managed C#)

     

    "Real" Embedded Software Code

    "Real" software code means the finally used code for a specific microcontroller embedded in a specific hardware environment.

    The programming language is C/C++.

    To make this part suitable for simulation the software design needs a strict separation between hardware specific code and not hardware specific code.

    E.g. a microcontroller register access must be programmed in a specific HAL (hardware abstraction layer) compiling unit. These HALs cannot be used for the simulation and must be replaced by a mock compiling unit.

     

    Encapsulation and Connectivity

    A link software part connects the "real" embedded software with the actual simulation.

    This happens with native functions and the HAL mocks.

    This entire connection and the embedded code form together a Windows DLL.

     

    Simulation

    The actual simulation runs in a managed C# .NET environment.

    This allows all the advantages of Windows Desktop GUI programming e.g. Windows Forms. 

    Die eigentliche Simulation läuft in einer managed C# .NET Umgebung. Furthermore the simulation can take access of the entire PC.

    Examples

    • Simulation of persistent data storage with files.
    • Simulation of a SPI proximity sensor with Windows Forms  controls.
    • Simulation of a radio connection with PC UDP data transmission.

     

    Unit Test

    Unit tests are becoming increasingly important for serious software development. However, unit tests of embedded software are time-consuming and expensive. 

    By integrating the embedded software into the Visual Studio simulation, you get a unit test environment for free. 

    The embedded code can be tested and logged directly as a unit.  

     

    Eicher Engineering
    Janahofstrasse 12
    CH-8722 Kaltbrunn SG
    Switzerland

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