The Motor Industry Software Reliability Association (MISRA) C coding standard was initially developed in the automotive industry, but now has expanded to all corners of industry where safety and security is of the utmost importance, including aeronautical, space, military and medical industries. C continues to be a popular language for software development because of its flexibility and efficiency. C compilers are available to port code to a variety of processors from embedded DSPs to supercomputers, and provides input/output access to the target processor. C is defined by international standards, but due to its potential wide range of use, there are parts of the language where the behavior is undefined, unspecified or left to the implementor to decide. In addition, the language could be used within the rules, but there are programming errors that the compiler will not generate an error message. The image below shows some examples of potential vulnerabilities of the C language.
The goal of the MISRA C coding standard is to preserve the features of C, while eliminating some of the pitfalls that could result in safety and security issues. The rules and directives imposed by the MISRA standard create a restricted subset of the C language. For example, Rule 13.4 which states “The result of an assignment operator should not be used.”. Coherence to this rule will resolve the programming error shown above. MISRA C rule has three categories: mandatory, required and advisory. Required and advisory rules do allow for deviations, as long as they are properly documented.
VOCAL has 35 plus experiencing developing software modules with a code base written in C. Our software is MISRA compliant with limited deviations.