Para contribuir a evaluar la calidad del código de software utilizado en las unidades de control electrónico, la Motor Industry Software Reliability Association (MISRA) introdujo directrices para el uso del código C en el software que se ejecuta en automóviles y aeronaves. En 1998, MIRA Ltd. publicó MISRA C (MISRA C:1998) para proporcionar un subconjunto restringido de un lenguaje estandarizado y estructurado que cumpliera con el Nivel de Integridad de Seguridad (SIL) 2 y superiores.
Desde entonces, se han producido varias actualizaciones del estándar, incluidas MISRA C:2004, el estándar MISRA AC AGC en el contexto de la generación automática de código, MISRA C++:2008 para C++ y el estándar MISRA C:2012.
Simulink, Stateflow y Embedded Coder se utilizan de forma generalizada para generar software embebido para MISRA C®. Los productos de verificación de código de Polyspace® se utilizan para analizar el código escrito a mano o generado para verificar la conformidad con MISRA C. Polyspace Bug Finder soporta la detección de las reglas de codificación de MISRA-C: 2004, MISRA-C++:2008, MISRA C:2012 y MISRA AC AGC.
Es posible configurar un modelo o un subsistema para que el generador de código tenga más probabilidades de producir código compatible con MISRA C: 2012 utilizando el asesor de generación de código. La conformidad con MISRA del código generado se puede comprobar mediante Polyspace, y los resultados se pueden trazar hasta el modelo. Se pueden incluir anotaciones a nivel de modelo para proporcionar justificaciones de cualquier desviación.
Más información sobre la generación de código conforme con MISRA:
Para ayudar aún más a los usuarios en sus esfuerzos por conseguir la conformidad con MISRA C, MathWorks proporciona un paquete de análisis de viabilidad y recomendaciones para generar código MISRA C cuando se utiliza Embedded Coder con modelos de Simulink y Stateflow.
El paquete de análisis de MISRA C incluye:
- Documentación con resumen de reglas y ejemplos detallados
- Modelos de Simulink