Testimonial

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

General Dynamics

Master Firmware

Registration is now open for the popular hands-on Embedded Software Boot Camp. Consult our public training calendar for upcoming dates and locations.

Boot Camp

Sign Up Now

Receive Michael Barr's Firmware Update newsletter for free how-to articles and industry news by e-mail. Sign up now.

Bookmark It

Bookmark this page or share it with a colleague.

Developing Effective Coding Standards

Embedded software expert Michael Barr presents new techniques for keeping bugs out with coding standards.

There are many sources of bugs in software programs. Some bugs are created by the original programmer. Other bugs results from misunderstandings of the original code by those who maintain, extend, and/or reuse (or port) that code at a later time. The number of bugs introduced by the original programmer can be reduced through the disciplined application of certain coding practices. In addition, some types of bugs caused by maintenance programmers can be prevented by the original programmer through commenting and careful and consistent naming of variables and functions.

Coding standards, which consider these issues from the start, are valuable tools to keep bugs out of medical devices and other safety-critical embedded systems. This course demonstrates how coding standards can be used to effectively keep software bugs out of C and C++ programs. Students are prepared to develop a variant of Netrino's Embedded C Coding Standard tailored to the needs of their organization.

Length/Options

  • 1 day (lecture)

Audience

  • Programmers, project managers, and technical managers

Prerequisites

  • Familiarity with C programming language

Related Courses

Outline

  • Introduction
    • Purpose of a Standard
    • Guiding Principles
    • Enforcement Procedure
    • Deviation Procedure
  • General Rules
    • Which C?
    • Line Width
    • Braces
    • Parentheses
    • Common Abbreviations
    • Casts
    • Keywords to Avoid
    • Keywords to Frequent
  • Comments
    • Acceptable Formats
    • Location and Content
  • White Space
    • Spaces
    • Alignment
    • Blank Lines
    • Indentation
    • Tabs
    • Linefeeds
  • Modules
    • Naming Conventions
    • Header Files
    • Source Files
    • File Templates
  • Data Types
    • Naming Conventions
    • Fixed-Width Integers
    • Signed Integers
    • Floating Point
    • Structures and Unions
  • Procedures
    • Naming Conventions
    • Functions
    • Function-Like Macros
    • Tasks
    • Interrupt Service Routines
  • Variables
    • Naming Conventions
    • Initialization
  • Expressions and Statements
    • Variable Declarations
    • If-Else Statements
    • Switch Statements
    • Loops
    • Unconditional Jumps
    • Equivalence Tests

    Learn More

    To request pricing or dates, or for more information about this course, contact us.