Introduction Both ROM and RAM strongly determine the cost of an MCU. And therefor, for an embedded developer, it is important to regard it as valuable resources. Especially for high-volume products (e.g. MCU's for cars) for which cheap hardware is … [Continue reading]
Guidelines to minimize ROM and RAM usage in low-end embedded systems
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 … [Continue reading]
ADC driver for the energy harvester

Introduction One of the goals of iteration 1 of the energy harvester project is to extend our software platform with drivers for measuring (gpio in, adc), controlling (gpio out, pwm) and debugging (uart). In this article our focus is set on the … [Continue reading]
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 … [Continue reading]
ADC

In order to (attempt to) control things, we need to find out what is going on, we need to measure and quantize: Sensors are the senses of electronics. Without senses, we are deaf and blind. Most micro-controllers we find today, incorporate an … [Continue reading]
AC generation experiments

Power with green inspiration. A couple of weeks ago, an electricity blackout in our neighborhood was announced by the power company. We thought this was the ideal time for some experimentation with 'green' off-the-shelve products and also … [Continue reading]
4 really good things about Scrum
Here are my 4 favorite scrum-activities: Sprint Planning meetings Daily scrums Retrospectives The backlog Sprint Planning meetings Planning meetings are at the beginning of each sprint. During these meetings the team looks at the … [Continue reading]
Real-time scheduling: assigning priorities

Real-time scheduling in practice In one of our previous items we talked about Real-time scheduling. Now, we want to show how priorities could be assigned in practice and how deterministic system response can be designed. Deterministic response … [Continue reading]
Debounced Buttons

A button-driven handbrake Buttons (or switches, or keys) are quite common in the world of the embedded systems. In most cases buttons trigger a software action and - in our context - we will use buttons for configuring the settings of the charge … [Continue reading]
Real-time scheduling

Definition A real-time operating system is a system that schedules execution of tasks in a timely deterministic manner, and is scalable. The scheduler follows a set of algorithms that determine which task executes at each … [Continue reading]
Recent Comments