Comments and Debug Code - BlogFebruary 15, 2021
Developing software for embedded systems takes time – generally more time than initially expected.
Multicore and OpenAMP - StoryJanuary 27, 2021
Every embedded system is different. And so, as multicore designs become increasingly common, almost to the point of being mainstream, different hardware and software architectures are evolving.
Take a Break - The Break Statement in C - BlogNovember 19, 2020
In the early days of programming, the first high-level languages very much followed the pattern of assembly language.
Pitfalls in C: Declaring Variables - BlogOctober 23, 2020
C is the most commonly used language for embedded, with good reason. It is expressive, compact and powerful. With care, it is possible to write very clear, readable code. But there are pitfalls.
Debug & Test
Readability Beats Debugging - BlogSeptember 22, 2020
When writing code, your first priority should be readability. A lot of time is spent debugging and maintaining code, often far more than was spent writing it in the first place.
Free Software! - BlogAugust 13, 2020
The "free apps" folks are so surprised when I pay, say $1.99 for an app. I commonly think, generally I know, that I am getting a bargain.
Encouraging Embedded Code Reuse - BlogJuly 16, 2020
The word "library" is used and abused in a variety of contexts. Its meaning here is well defined. A library file may be presented to the linker, along with relocatable object files.
Bottom Up or Top Down? - BlogJune 16, 2020
There are, broadly speaking, two distinct approaches to the design of software: bottom-up or top-down.
Dynamic Memory Allocation - Just Say No - BlogMay 19, 2020
Increasingly, embedded software developers are realizing that dynamic memory allocation is fraught with problems.
Subtlety in C - BlogApril 16, 2020
I feel very strongly that a software developer has a great responsibility, which should be manifest in a priority: write code that is easy to understand.
Challenges and Opportunities with Medical Embedded Applications - BlogMarch 16, 2020
Although I would normally talk to embedded software developers about the technology and processes around that software, understanding the background to why their products are needed is useful.
Getting Certified - BlogFebruary 17, 2020
There is an increasing focus on safety and security in a variety of embedded applications. This, in turn, drives a demand for certification of such systems.
Inside the Black Box - BlogJanuary 15, 2020
Most software is obtained as a binary executable. The program may run and does what it does, but the user has no knowledge of its inner workings and has no opportunity to modify its functionality.
Embedded OS: real-time or not? - BlogNovember 21, 2019
OS selection is quite a large subject and there are many nuances, and this is a matter that I have written about many times. Today I wanted to ponder the matter of time; what model of time is relevant
How to Choose an Embedded Operating System - BlogAugust 13, 2019
Almost all modern embedded systems are built using an operating system (OS) of some sort. This means that the selection of that OS tends to occur early in the design process. How do you choose an OS?
What Processor Should I Use? - BlogApril 15, 2019
There are a great many embedded CPUs on the market today, so selecting the right one for a given project is a challenge.
Power Saving Modes for Embedded Systems - ProductFebruary 19, 2019
Power management's importance is largely driven by the requirements to extend battery life for handheld devices, but environmental hazards, heat dissipation, etc., are raising concerns.
Embedded Hypervisors Aren't New, But? - BlogDecember 17, 2018
Some technologies stand the test of time. Hypervisors have been around for a long time, but have recently come into their own.
The demise of the reset button - BlogNovember 15, 2018
A device can perform a self-test and sometimes software can preempt its own failure, but freezes happen, and what do you do?
Software tests its own integrity - BlogOctober 18, 2018
Obviously, well designed software is likely to have fewer bugs and the application of modern embedded software development tools can keep them to a minimum.