Beyond the RTOS: A Better Way to Design Real-Time Embedded Software

Miro Samek

An RTOS (Real-Time Operating System) is the most universally accepted way of designing and implementing embedded software. It is the most sought after component of any system that outgrows the venerable "superloop". But it is also the design...

Data Types for Control & DSP

Tim Wescott

There's a lot of information out there on what data types to use for digital signal processing, but there's also a lot of confusion, so the topic bears repeating.I recently posted an entry on PID control. In that article I glossed over the data...

Embedded Firmware Refactoring, Optimisation and Migration


Legacy products are often based on older hardware platforms which often become under-powered or run out of memory which constrains further product development. Customers are always looking for new features and improved performance but...

Basic Sensors for an Autonomous Vehicle

Ed Nutter
1 comment

The following are a few basic sensors that can be used to help an autonomous vehicle navigate its environment.The faster the vehicle is traveling, the faster the sensor must be processed.  Moving vehicles could knock something over or...

3 Good News

Stephane Boucher

Good News #1 Last week, I announced a new and ambitious reward program that will be funded by the new Vendors Directory. This week, I am happy to announce that we have our firsts two sponsors!  Quantum Leaps & Abelon Systems have...

Cutting Through the Confusion with ARM Cortex-M Interrupt Priorities

Miro Samek
1 comment

The insanely popular ARM Cortex-M processor offers very versatile interrupt priority management, but unfortunately, the multiple priority numbering conventions used in managing the interrupt priorities are often counter-intuitive, inconsistent,...

The New Forum is LIVE!

Stephane Boucher

After months of hard word, I am very excited to introduce to you the new forum interface.  Here are the key features:1- Easily add images to a post by drag & dropping the images in the editor2- Easily attach files to a...

Cortex-M Exception Handling (Part 2)

Ivan Cibrario Bertolotti
1 comment

The first part of this article described the conditions for an exception request to be accepted by a Cortex-M processor, mainly concerning the relationship of its priority with respect to the current execution priority. This...

Analyzing the Linker Map file with a little help from the ELF and the DWARF

Govind Mukundan

When you're writing firmware, there always comes a time when you need to check the resources consumed by your efforts - perhaps because you're running out of RAM or Flash or you want to optimize something. The map file generated by your linker is...

Coding Step 4 - Design

Stephen Friederichs

Articles in this series: Coding Step 0 - Development Environments Coding Step 1 - Hello World and Makefiles Coding Step 2 - Source Control Coding Step 3 - High-Level Requirements Coding Step 4 - Design The last article in...