"Barr Group training courses should be required before writing any embedded code."

General Dynamics

Subscribe to our Newsletter

Subscribe to our newsletter and receive free how-to articles and industry news as well as announcements on free webinars and other Barr Group Training course information by e-mail.
Sign up today!

Firmware Defect Prevention for Safety-Critical Systems

This course focuses on the most important proactive implementation techniques that reduce firmware defects for safety-critical systems. Such firmware defects can result in severe – even deadly – consequences. Specifically, this course will discuss three of the most important and undervalued safety-critical firmware implementation techniques: adopting an effective coding standard, conducting meaningful code inspections, and using static analysis properly.

Many teams rely too heavily on important, but more costly, downstream approaches, such as testing/validation or even end-user feedback, to discover and remove defects. As a result, front-end activities rarely are fully embraced and often are not practiced successfully. All are necessary, together forming a type of "firmware safety net" for your embedded device. This course will teach you best practices for coding standards, code inspections, and static analysis, including coverage of the latest version of the MISRA-C Coding Guidelines. It will also provide in-depth examples of defects that are trapped and removed by these activities.


  • 1 day


  • Engineers with any level of embedded software experience
  • Technical leaders and managers


The following outline is provided as a summary of the major course topics and should not be taken as literally the section-by-subsection lecture breakdown.

  • Introduction
    • Safety-Critical Software
    • Case Studies
  • Coding Standards
    • Benefits and Justification
    • Embedded-Specific Coding Rules
    • Integrating into your process
    • MISRA-C and MISRA-C++
  • Code Inspections
    • Introduction
    • Quality Metrics
    • Integrating into the Process
    • Best Practices and Recommendations
    • Exercise
  • Static Analysis
    • Contrasted with Compilers & Dynamic Analysis
    • Effective Usage
    • Enforcing Coding Standards
    • Examples
  • Wrap up
    • Lessons Learned
    • Putting it All Together
    • Key Takeaways


Attendees should have a working familiarity with the C programming language.

Find out More

Contact Us to find out about bringing this course to your company.

Related Courses