Scheduled for 14:00
Embedded firmware is developed on a desktop computer. Code that is not directly dependent on hardware can be compiled with a conventional desktop compiler, and executed “off-target” on the host machine. This is very useful from the point of view of efficient development. Often unnoticed, there are a several structural reasons causing differences between the host- and target binaries.
The off-target approach is often chosen for the execution of unit tests because it avoids long compile-flash-debug loops through the microcontroller. However, if these tests are not also executed on target – with potentially different results! – a purely “perceived security” could quickly result.
This talk will analyze the most important reasons for changed behaviour during compilation and execution. We will take a look into factors such as architecture-dependent properties, the compiler, runtime-libraries and build settings.
Attendees will get to know criticial factors so that they are in a better position to estimate and subsequently prevent risks in their own projects.
A real-world example from an open source project will be used to demonstrate the hidden risks in off-target unit testing.