Follow our illustrated blog on Embedded Software Architecture

How to build a hybrid solar/wind energy harvester?

Vector, list and tree

Choice of containers Information technology, even embedded devices, is about information gathering, processing or calculation, and control. Input and data needs to be juggled around and maybe sorted. In this article, we want to point out some fundamental implications in the choice of a data container. Vector The first container is the array or “vector”. […]

Share

Priority inversion

I found the inspiration for this article while working on a consultancy job: Priority inversion. In computer science, priority inversion is a (potential) problematic scenario in scheduling in which a high priority task is indirectly preempted by a medium priority task effectively inverting the relative priorities of the two tasks. (http://en.wikipedia.org/wiki/Priority_inversion) To put it more […]

Share

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 […]

Share

Coming Soon

Finally, we are almost there. Our first product – a joint development result of cooperation between IACS and RTOS.BE – is about to be commercialized. The Energy2Switch is a DC switch board with 2 channels rated up to 50V and 40A. Continuous power is limited at 1500W per channel, which boils down to 40A @ […]

Share

5 reasons why embedded device development projects fail

Missing stakeholder support  “The project is defined, so implement it and roll it out” does not work well in human organizations. Every entity and person has its own target, purpose and agenda. That is the way the world works, so one must take into account the process (and the time) it takes to get all […]

Share

Real-time: designing task algorithms

In an earlier article, we talked about real-time behaviour, meeting deadlines and how a real-time OS operates. To recapitulate: the highest priority task that becomes runnable pre-empts all other tasks and runs to completion (until it ends, yields or sleeps). Also, we can have different layers of processing. high-to-low priority run-to-completion interrupts run first (all […]

Share

Real-time scheduling: no locks, please.

In a previous post, the assignment of priorities was discussed. There are a couple of axioms involved. One must mention at least these two: No resource sharing, locks or busy-waits. Static priorities (i.e. the task with the highest static priority that is runnable immediately preempts all other tasks, and the task priority does not change […]

Share

Development facilitators

This might be a good time to talk about developer (or technical development procedure) facilitators. Although these are not even regarded as intermediate requirements – and certainly are not considered to be as important as user requirements – some development facilitators could be considered as development procedure requirements that have big impact on the process […]

Share