Typically Hardware and Software of an embedded System are designed in seperate programming languages.
Current methods combine the development in one design flow. This simplifies integration, simulation and verification of the system. The language SystemC uses this modern idea and is used more and more in industry and science.
For more information please visit our german webpage https://www.cs12.tf.fau.de/lehre/lehrveranstaltungen/praktika/praktikum-systemc