Interesting readings

On this page you find interesting resources that might help you to become a better embedded software engineer.

Send us links to interesting material if you think it should appear here.

Books

Image of book Practical Model-Based Testing: A Tools Approach	Practical Model-Based Testing: A Tools Approach from Mark Utting and Bruno Legeard. Chapter 5 discusses “Testing from finite state machines”.
Image of book Test-Driven Development for Embedded C	“Test-Driven Development for Embedded C” from James W. Grenning. It teaches you how to use the unit testing frameworks Unity and CppUTest to test embedded software. This book does not explicitly discuss state machine testing.
Image of book Constructing the User Interface with Statecharts by Ian Horrocks	“Constructing the User Interface with Statecharts” by Ian Horrocks was published 1999. But still gives very good introductions how to use state machine for designing user interfaces. Using concrete and extensively discussed examples, such as a CD player, he shows how to practically design GUIs with statecharts. Due to the chosen examples it is specifically useful for UI designers of real physical devices.

—-

Reports where state-machines are used in practise

NASA: Read this interesting article on “UML Statechart Autocoding for the Mars Science Lab (MSL) Mission”. This article describes how NASA generates flight code automatically from a state machine diagram. The generated code has been part of Curiosity’s flight software since launch, and continues to run onboard today. They describe how their generated code looks like and shares the lessons they learned. Link to the article.

Tools

SocketCAN is a CAN driver directly integrated into the Linux kernel. The SocketCAN concept extends the Berkeley sockets API in Linux by introducing a new protocol family, PF_CAN, that coexists with other protocol families, such as PF_INET for the Internet Protocol. That means you can work with CAN just using your TCP/IP know-how and related tools e.g. logging traffic with wireshark. More information is available at SocketCAN. A nice hardware interface for SocketCAN is candleLight.