Follow our illustrated blog on Embedded Software Architecture

How to build a hybrid solar/wind energy harvester?

The linker demystified – part 2

 In part 1, we explained the main purpose of a linker: to put pieces of object code together into a single executable file. In this second and final part, we will discuss how we can control and adjust this process using linker scripts.


4 reasons you should stay away from Almost-Scrum

“Almost-Scrum” or what is also known more generally speaking as the Avalanche Model is not a good project approach to find yourself in with your development team. On Wiki you’ll find the following description: “The Avalanche model is a Software Engineering project management anti-pattern, it is a combination of a sequential process such as the […]


The linker demystified, part 1

Transforming source code into an executable program involves a number of steps called a software build process. In its simplest form, these steps are limited to a compiler translating source code written in a high-level programming language (such as C) into low-level object code, and a linker combining the object code into a single executable […]


Not all processors have atomic instructions!

Recently we were involved in improving boot-up times of a Linux based platform. We noticed that the boot-up time was much longer than expected based on the processor speed. The only way to figure out what was happening was to profile the start-up procedure. Something that is not always easy on limited embedded platforms like […]


3 ways to boost your performance as a developer

If you wish to boost your performance as a developer by a non-trivial factor then here are three ways to help you achieve this: loosely couple automate testing automate delivery I saw people -myself included- that started applying these rules and went from being unproductive and frustrated about coding, to being productive and in control […]


Adopting MISRA-C guidelines in your software development process – best practices

Implementing functional safety by means of achieving a certain safety integrity level (SIL) is a matter of reducing risks. On the software side this results among other things in the adoption of a language subset, which often is a required SIL parameter. As C and, to a lesser extent, C++ are popular programming languages for developing embedded software, a […]