CEC – Debugging Real-time Embedded Software – Hands-on

Course Overview: The greatest challenge facing embedded system developers is debugging software. Embedded systems have become very complex systems running real-time operating systems, connectivity stacks, USB, security among a wide variety of other application code. Many engineers are still debugging using only break-points which is inefficient and won’t find most problems. In this course, Jacob … Continue reading CEC – Debugging Real-time Embedded Software – Hands-on

Embedded Basics – Becoming a firmware expert

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 … Continue reading Embedded Basics – Becoming a firmware expert

Tools – Percepio Tracealyzer

The behavior of a real-time embedded system is often a black box. Developers design their software, write their code and then hope that the system is behaving and executing their code the way they envisioned it. The problem is that developers have always had to hope or carefully sprinkle code snippets throughout the application in … Continue reading Tools – Percepio Tracealyzer

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

Tips and Tricks – Best Practices for Programming Defensively in C

Best practices are meant to be fundamental, essential practices that every firmware application should follow. Programming defensively has always been an important software skill. Below are a few best practices for programming defensively in C that firmware developers should keep in mind: Check inputs and outputs of functions Check the return value of functions (they … Continue reading Tips and Tricks – Best Practices for Programming Defensively in C

Mastering the 8 Pillars of Embedded Software

Every embedded software program starts with a basic foundation from which the application is built. A successful application requires that the developer build the application using knowledge of the eight pillars of embedded software which include: Architecture Code Analysis Debugging Documentation Language Skills Standards Testing Tools / Ecosystem Skill deficiencies in any of these pillars … Continue reading Mastering the 8 Pillars of Embedded Software

CEC – Rapid Prototyping Embedded Systems using MicroPython

Course Overview: Embedded system developers are facing challenges that often require a look outside of the box for tools and methodologies that can help quickly prove an idea or concept very rapidly. One of the tools that developers often overlook is the Python programming language. This course will examine how Python can be used for … Continue reading CEC – Rapid Prototyping Embedded Systems using MicroPython