What techniques do you have to develop before hardware is available?

This page summarizes the projects mentioned and recommended in the original post on /r/embedded

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • tlib

  • For simulation I have been using a simulation framework named Renode. It has decent support for quite a few embedded platforms and is easy to extend. Peripheral development is done in C#, but there is support for python and rust in development. The translation library for the cpus is called tlib. It uses an older fork of tcg which is what qemu is built upon. https://renode.io/about/ and https://github.com/antmicro/tlib for reference. You can even run peripherals developed in HDL in verilator and connect them with the target CPU on the same sysbus.

  • Google Test

    GoogleTest - Google Testing and Mocking Framework

  • Everything else was covered: Ceedling+Unity+CMock for Unit Testing in C, CppuTest or GoogleTest or other options for C/C++. FFF is also useful when mocking. If you test and develop your modules correctly, they should when they are in your application. If you are developing using an Event-Driven Framework like QP or QML, then I would not test anything to do with the framework, but the functions that are called in each event. Same thing if you are using an RTOS, test what's inside your threads/tasks.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • fff

    A testing micro framework for creating function test doubles (by meekrosoft)

  • Everything else was covered: Ceedling+Unity+CMock for Unit Testing in C, CppuTest or GoogleTest or other options for C/C++. FFF is also useful when mocking. If you test and develop your modules correctly, they should when they are in your application. If you are developing using an Event-Driven Framework like QP or QML, then I would not test anything to do with the framework, but the functions that are called in each event. Same thing if you are using an RTOS, test what's inside your threads/tasks.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts