Embedded Basics – Developing Reusable Firmware

Writing embedded software for microcontrollers that is reusable and portable can be challenging. Different microcontrollers contain different architectures and peripherals which makes creating any cross-platform application code difficult to achieve. The fact is, developers can write embedded software that is reusable and portable in a microcontroller based environment. Over the last year or so I’ve … Continue reading Embedded Basics – Developing Reusable Firmware

Embedded Basics – Setting up Tracealyzer to Debug FreeRTOS Applications

Peering into a microcontroller and seeing how the embedded software is executing has always been important to embedded software developers. In the good old days, developers used to have to instrument their hardware with extra outputs and use all kinds of tricks in order to take a stab at understanding what was happening with their … Continue reading Embedded Basics – Setting up Tracealyzer to Debug FreeRTOS Applications

Embedded Basics – 7 Skills Every Engineering Graduate Needs to be Successful

Engineering education focuses on the technical details and the science of how to build systems. The problem with a four, five or six-year degree is that they don’t teach engineers the soft skills required to have a successful career. Here are seven skills that every engineering graduate needs to be successful. Skill #1 – Networking … Continue reading Embedded Basics – 7 Skills Every Engineering Graduate Needs to be Successful

Embedded Basics – Don’t Forget about Real-time

Microcontrollers are becoming more powerful every day, causing many developers to forget the resource constrained nature that many are working within. Microcontrollers are not general computing devices that can be treated like they have infinite memory and clock speeds equivalent to that found on modern PC’s (or cell phones). Most microcontroller based applications are designed … Continue reading Embedded Basics – Don’t Forget about Real-time

Embedded Basics – Selecting the Right Watchdog Strategy

Setting a watchdog strategy is easy. Just enable the microcontrollers internal watchdog timer and setup an interrupt to occasionally clear the timer and keep the dog happy right? Not exactly. Watchdogs help ensure that the embedded system we are creating is robust and can detect if something runs amiss. The chances for something going wrong on … Continue reading Embedded Basics – Selecting the Right Watchdog Strategy

Ternary Operator versus the if/else statement …

When I’m teaching “C Programming for Embedded Systems”, I’m often asked whether the ternary operator should be used or an if/else statement. Hidden behind the question is really the need to know whether the ternary operator is more efficient than if/else. One might think that compilers today would generate identical code. Let’s take a quick … Continue reading Ternary Operator versus the if/else statement …