Mastering Embedded Build Systems: Exploring the 5 Essential Configurations

If you’ve ever developed embedded software, you know typical embedded build systems have just two build configurations: debug and release. In fact, you’ve probably spent most of your time only using the debug build. The Rust build system has gone a little further in that test has been added. However, did you know there are five essential build configurations you...

Learn More >>>

CEC – Secure MCUs and RTOSs

Many embedded systems today must be secure. Many of these devices also have complex timing requirements that also require an RTOS. In this course, we will explore the capabilities of modern secure microcontrollers and how to select them. We will explore their hardware isolation mechanisms, and software stacks like trusted firmware for cortex-m. In addition, we will explore how to...

Learn More >>>

Simulating Embedded Software: 3 Simple Tips for Better Results

Simulating embedded software is a technique that most teams underutilize or completely ignore. You’ve probably worked on a product before where the embedded software had to be started immediately, but the hardware was months away from being ready. It’s not uncommon for teams to start development with a franken-board. Basically, a development board is torn apart with wires extruding everyone...

Learn More >>>

CEC – Embedded Software using Rust

Rust is a memory-safe systems programming language that can be used in embedded systems like IoT devices. In this course, you will learn how to use Rust to develop microcontroller-based embedded systems. You’ll also learn about Rust’s syntax, data types, and control flow. By the end of the course, you will have the skills to develop reliable, efficient, and easy...

Learn More >>>

3 Tips for Successfully Transitioning Away From C

There’s little question about it; when it comes to embedded systems programming languages, C is the reigning language. Over the last several decades, there have numerous attempts at a coup, but when the dust clears, the C programming language seems always to be the language left standing. In recent years, there have been rumblings once again about replacing C with...

Learn More >>>

Embedded Software Design

This book will teach you how to design higher-quality embedded software from concept through production. By the end of this book, you will have a defined development process, understand modern software architecture, and be equipped to start building embedded systems.  Download Table of Contents Embedded systems are typically designed using microcontrollers to build electronic systems with a dedicated function and...

Learn More >>>

5 Tips for Adopting Agile in Embedded Systems

You’ve probably heard many times that Agile doesn’t work for embedded software development. Embedded software is unique and Agile techniques just don’t work for software that has to touch the hardware. You might not realize that Agile isn’t about all the techniques and methodologies you often hear about. Agile, as described in the Agile Manifesto,  is about improving collaboration within...

Learn More >>>

Official Release: Embedded Software Design

It’s official! My latest book Embedded Software Design has been released in paperback and electronically! In an earlier post, Book: Embedded Software Design, I provided a little summary about the book and the chapter break down. In this post, I want to tell you a few options on how you can read it, and share a few thoughts about what...

Learn More >>>

Developing Machine-Learning Applications on the Raspberry Pi Pico

The Raspberry Pi Pico is a versatile, low-cost development board that applies to many applications. This course will explore getting up and running with the Raspberry Pi Pico. We’ll mainly focus on how to develop machine-learning applications and deploy them to the Pico. We’ll use gesture detection as an example application. Attendees will walk away understanding machine learning, the Pico,...

Learn More >>>

4 Tactics to Unit Test RTOS Tasks

More than 50% of all embedded software projects use Real-time Operating Systems (RTOS). Unfortunately, using an RTOS can pose several problems to developers looking to use modern development techniques such as Test-Driven Development (TDD), DevOps, or automated test harnesses. For example, the first problem developers encounter when they try to write tests for their tasks is that the task function...

Learn More >>>

The Secret Embedded Software Definition Experts Use

Scour the web for “embedded software definition”, “what is embedded software?” or definition of embedded software. You’ll find a wide range of articles that state something like the following: “Embedded software is computer software, written to control machines or devices that are not typically thought of as computers, commonly known as embedded systems. It is typically specialized for the particular...

Learn More >>>