EETimes University – Fundamentals of IoT System Design

Designing an IoT device requires more than expertise in embedded system design. Developers also need to understand the IoT architecture and how their device fits into the grander scheme. IoT devices are not stand-alone but links in a chain that can affect the entire internet. Developers need to understand how to secure their device, provision … Continue reading EETimes University – Fundamentals of IoT System Design

Developing Reusable Firmware – A Practical Guide to API’s, HAL’s and Drivers

Developing firmware that can be reused is an important and critical skill. The majority of engineers and teams that I interact with are stuck constantly reinventing the wheel on every project that they work on. In order to help developers understand how they can create not just reusable application code but reusable firmware, down to … Continue reading Developing Reusable Firmware – A Practical Guide to API’s, HAL’s and Drivers

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

Tips and Tricks – 7 Cardinal Sins of Embedded Software Development

Every industry has their best practices and their sinful practices.  The cardinal sins are the practices that many are aware of but that are just too tempting or too easy to fall into. The embedded software industry has a number of these cardinal sins but there are seven in particular that seem to have pervaded … Continue reading Tips and Tricks – 7 Cardinal Sins of Embedded Software Development

Slowing Down to Go Faster

Speed is imperative in the business world. Getting to market before competitors, leading the way in innovation, the development cycle can be relentless. For embedded systems engineers, deadlines are always yesterday. There is always a push to get things done faster. How quickly can we get this done? So and so needs this as fast … Continue reading Slowing Down to Go Faster

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 …

7 Characteristics to Consider when Selecting an RTOS

Selecting the right RTOS is a critical step in any embedded software development project. Selecting the wrong RTOS could affect project costs, time to market and have real-time implications on the behavior of the system. When selecting an RTOS, teams usually focus just on cost but there are seven characteristics that should be considered. Let’s … Continue reading 7 Characteristics to Consider when Selecting an RTOS