Security and the IoT

In a recent DDoS attack, devices such as webcams and DVRs were used to launch an attack on domain service provider, Dyn. The enormity of this event brings to light the importance of securing all devices capable of connecting to the Internet.

How to Prevent and Detect Stack Overflow

The safety and security of every embedded system is dependent upon proper operation of the stack (or stacks, if there are multiple). If a stack overflow occurs, a major or minor malfunction is very likely to follow. Despite this, the stack in the majority of embedded systems is sized based on nothing more than a hunch. As well, run-time stack monitoring is too seldom used.

How to Get Started with C++ in Embedded Systems

C++ compilers are available for most modern embedded processors, yet the adoption rate remains low. Here we provide very practical advice to help you can get started with C++ immediately. The discussion moves quickly from dispelling common C++ myths and identifying key C++ benefits to a set of practical tips and tricks to help you put C++ to the most effective use in your "first month" and "first year."

Top 10 Causes of Nasty Embedded Software Bugs

Too often engineers give up trying to discover the cause of infrequent anomalies--because they can't be easily reproduced in the lab--dismissing them as "user errors" or "glitches." Yet these ghosts in the machine live on. So here's a guide to the most frequent root causes of difficult-to-reproduce firmware bugs.

Top 5 Causes of Nasty Embedded Software Bugs

Too often engineers give up trying to discover the cause of infrequent anomalies--because they can't be easily reproduced in the lab--dismissing them as "user errors" or "glitches." Yet these ghosts in the machine live on. So here's a guide to the most frequent root causes of difficult-to-reproduce firmware bugs.

How to Allocate Dynamic Memory Safely

Whether you're using only static memory, a simple stack, or dynamic allocation on a heap, you have to proceed cautiously. Embedded programmers can't afford to ignore the risks inherent in memory utilization.

How to Protect Non-Volatile Data

Unexpected power loss and software bugs can undermine the reliability of non-volatile data. Fortunately, there are various ways to make non-volatile data resilient to such corruption.

How to Improve Product Usability

Product usability problems require the engineer to take off his engineering hat and think more like a user.

Response Timing for User Interfaces

Proper timing in user interfaces often has more to do with the user's perception than with the actual passage of time.

How to Avoid Common Firmware Bugs

Understanding software and hardware bugs in other embedded systems can help you identify, diagnose, and fix bugs in your own.

Pages