Comments and Debug Code - Blog
February 15, 2021Developing software for embedded systems takes time – generally more time than initially expected.
Multicore and OpenAMP - Story
January 27, 2021Every 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 - Blog
November 19, 2020In the early days of programming, the first high-level languages very much followed the pattern of assembly language.
Pitfalls in C: Declaring Variables - Blog
October 23, 2020C 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 - Blog
September 22, 2020When 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! - Blog
August 13, 2020The "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 - Blog
July 16, 2020The 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? - Blog
June 16, 2020There are, broadly speaking, two distinct approaches to the design of software: bottom-up or top-down.
Dynamic Memory Allocation - Just Say No - Blog
May 19, 2020Increasingly, embedded software developers are realizing that dynamic memory allocation is fraught with problems.
Subtlety in C - Blog
April 16, 2020I 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 - Blog
March 16, 2020Although 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 - Blog
February 17, 2020There 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 - Blog
January 15, 2020Most 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? - Blog
November 21, 2019OS 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 - Blog
August 13, 2019Almost 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? - Blog
April 15, 2019There 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 - Product
February 19, 2019Power 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? - Blog
December 17, 2018Some 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 - Blog
November 15, 2018A 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 - Blog
October 18, 2018Obviously, well designed software is likely to have fewer bugs and the application of modern embedded software development tools can keep them to a minimum.