Follow our illustrated blog on Embedded Software Architecture

How to build a hybrid solar/wind energy harvester?

Embedding a Basic interpreter

The green4 stm32 cortex m3 microprocessor we selected is – according to today’s standards – a rather small microprocessor in Flash (128KB) and RAM (8KB). why an interpreter The Green4 device is running control software on top of FreeRTOS, with a couple of drivers, and exposes a communication and an information protocol. We think our […]


Open source implementations of malloc

On (very) small embedded systems without a full OS (e.g. because there is only a scheduler), one can (and should) usually live without dynamic memory allocation. But sometimes, it is really needed or it is just more convenient. It is possible to write your own simple dynamic allocator on top of a pre-defined memory region, […]


The embedded hierarchy – Part2

So how can we represent the embedded hierarchy in software? Before we can answer this question, we must make our goals clear: setting up and defining a new board should be as easy as possible, and code re-use should be optimal. With these goals in mind, it is useful to divide the hardware hierarchy into […]


Programs, processes and threads – Part 2

This post is Part 2 of the series. Part1, which explains Programs and Processes, can be found here. Thread A thread is a single path of execution and schedulable by the CPU. It has its own stack, program counter and set of registers. A process (living program and container of all resources — see Part1) has one […]


Mutexes and semaphores: the FreeRTOS implementation

Let us start with an interesting quote from the FreeRTOS web site: Binary semaphores are used for both mutual exclusion and synchronisation purposes. The quote clearly makes a distinction between the two use cases we saw in part 1: mutual exclusion: how to serialize access to shared data, and synchronization: how does a producer notify […]


Early Prototyping: ‘blink those leds’

A bottom-up or a top-down approach? In order to be able to try something out, to proof something is technically viable, it is absolutely necessary to do early prototyping and provide ‘POTs’. A Proof Of Technology is just substantiating that there is a potential solution to a technical problem: We must emphasize that it is […]