Archive for the ‘Firmware Bugs’ Category

Most Popular Embedded Gurus Blog Posts of 2013

Tuesday, December 17th, 2013 Michael Barr

Below are the top 10 most read blog posts from the Embedded Gurus in 2013.

#1: An Update on Toyota and Unintended Acceleration

#2: Efficient C Tip #13: Use the Modulus (%) Operator with Caution

#3: A Tutorial on Signed and Unsigned Integers

#4: A Tutorial on Lookup Tables in C

#5: Embedded C Programming with ARM Cortex-M Video Course

#6: What Belongs in a C .h Header File?

#7: Don’t Follow These 5 Dangerous Coding Standard Rules

#8: Computing Your Stack Size

#9: Combining C’s volatile and const Keywords

#10: Real World Variables

Most Popular Embedded Gurus Blog Posts of 2010

Wednesday, December 29th, 2010 Michael Barr

Below are the top 10 most read blog posts from the Embedded Gurus in 2010.

#1: Take the Mutual Exclusion Challenge (Mutexes vs. Semaphores)

#2: Toyota’s Embedded Software Image Problem

#3: Setting a Bad Example, Part 1

#4: 3 Things Every Programmer Should Know About RMA

#5: A Tutorial on Lookup Tables in C

#6: Efficient C Tip #12: Be Wary of Switch Statements

#7: Top 10 Causes of Nasty Firmware Bugs

#8: Efficient C Tip #11: Avoid Passing Parameters by Using More Small Functions

#9: Computing Your Stack Size

#10: Firmware-Specific Bug #1: Race Condition

Top 10 Causes of Nasty Firmware Bugs

Wednesday, December 15th, 2010 Michael Barr

Finding and killing latent bugs in embedded software is a difficult business. Heroic efforts and expensive tools are often required to trace backward from an observed crash, hang, or other unplanned run-time behavior to the root cause. In the worst case scenario, the root cause damages the code or data in a subtle way such that the system still appears to work fine or mostly fine–at least for a while.

Too often engineers give up trying to discover the cause of infrequent anomalies that cannot be easily reproduced in the lab–frequently 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 bugs.

#10: Jitter

#9: Incorrect Priority Assignment

#8: Priority Inversion

#7: Deadlock

#6: Memory Leak

#5: Heap Fragmentation

#4: Stack Overflow

#3: Missing volatile Keyword

#2: Non-Reentrant Function

#1: Race Condition

Keep an eye out for all of these Top 10 Firmware Bugs whenever you are reviewing source code. And be sure to follow the recommended best practices to prevent them from happening to you again.

Most Popular Embedded Gurus Blog Posts of 2009

Monday, November 8th, 2010 Michael Barr

Below are the top 10 most read blog posts from the Embedded Gurus in 2009.

#1: Sorting (in) Embedded Systems

#2: Electrical Engineers vs. Computer Scientists

#3: Binary Literals in C

#4: Robust Embedded Software Architecture in 5 Easy Steps

#5: Understanding Stack Overflow

#6: Signed vs. Unsigned Integers

#7: Computing Your Stack Size

#8: Efficient C Tips #1: Choosing the Correct Integer Size

#9: Embedded Programmers Worldwide Earn Failing Grades in C and C++

#10: PIC Stack Overflow