Ground Embedded KO Subscribe

Roadmap / Firmware

Firmware Design & Quality

Production firmware is maintained by many people for years. Working code and maintainable code are different things.

Goal Design firmware others can read, change and keep alive.

  • IntermediateLevel
  • about 3 weeksat one hour a day
  • 8topics
  • 0labs
  1. 01
    Layered architecture

    HAL, drivers, services, application, and the direction of dependencies.

    Read the note →

  2. 02
    Modules and interfaces

    Drawing boundaries with headers and hiding the internals.

    Read the note →

  3. 03
    Coding rules

    What MISRA C forbids, and why.

    Read the note →

  4. 04
    Unit testing

    Testing firmware logic on a PC without hardware.

    Read the note →

  5. 05
    Static analysis

    Compiler warnings and tools such as cppcheck that find bugs before running.

    Read the note →

  6. 06
    Version control

    Git branches, commit granularity and release tags for firmware history.

    Read the note →

  7. 07
    Logging and debug output

    printf debugging, ring-buffer logs, real-time trace.

    Read the note →

  8. 08
    Firmware updates

    OTA structures that update devices in the field safely.

    Read the note →

CHECK TASK

Re-split an existing project into layers

Divide the firmware you made earlier into driver, service and application layers and organise it as a state machine.

If you can tick all three, move on to the next subject. Ticks are saved in this browser only.