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

Post Image

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 […]

read more

Embedded Basics – Hard and Soft Breakpoints

Post Image

Every developer uses breakpoints to debug their software. It’s fundamental. Double click on the line of code that you want to break program execution on and then let it go (or is it break?). Quite a few developers that I encounter don’t realize that there are different breakpoint mechanisms occurring in the background that provide […]

read more

Embedded Basics – Don’t Forget about Real-time

Post Image

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 […]

read more

Embedded Basics – Selecting the Right Watchdog Strategy

Post Image

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 […]

read more

Embedded Basics – Threads vs Tasks

Post Image

The 32-bit microcontroller has been increasing in capabilities and decreasing in cost which has resulted in real-time operating systems becoming the dominant scheduler in many embedded systems. While there are more than a hundred different RTOS flavors out on the market, engineers sometimes struggle with basic terminology. Take for example threads and task which under […]

read more

10 Questions for a Successful Code Review

Post Image

Over the years I’ve noticed a number of common gotchas when reviewing code. They’re there no matter what the size the company or how mature the development process (and I have had the opportunity to review software for companies ranging from those with strict and bureaucratic processes to those that are more shoot-first-aim-later). In order […]

read more

Ternary Operator versus the if/else statement …

Post Image

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 […]

read more

Open Source versus Commercial Compilers

Post Image

Using open source and free software seems to be engrained in the DNA of software developers. Given a choice to pay or build a developer will usually choose build. When it comes to compilers, building their own compiler would take far too long and be very error prone so developers choose open source tools such […]

read more

Embedded Basics – 7 Silent Project Killers

Post Image

There are few things more discouraging to an engineer than pouring their heart, sweat and tears into a project only to have it fail.  Failure can and does provide insights and growth experiences to those involved but the loss of time and effort can strike a devastating blow.  There are many reasons that an embedded […]

read more

Embedded Basics – Becoming a firmware expert

Post Image

Becoming an expert at anything is an elusive endeavor, especially when that something involves embedded software. The rate at which embedded technologies change is dizzying to say the least. While the programming languages used to write software have predominantly remained C and C++, the techniques, compilers, tool chains, supporting processes and technologies march forward in […]

read more