Pour simplifier l'évaluation de la qualité du code logiciel utilisé dans les unités de commande électronique, la MISRA (Motor Industry Software Reliability Association) a établi des directives pour l'utilisation de code C dans les logiciels exécutés dans les automobiles et les avions. En 1998, MIRA Ltd. a publié la norme MISRA C (MISRA C:1998) afin de fournir un sous-ensemble restreint d'un langage standardisé et structuré conforme au niveau SIL (Safety Integrity Level) 2 et au-delà.
Depuis lors, plusieurs mises à jour ont été apportées à la norme, notamment MISRA C:2004, MISRA AC AGC dans le contexte de la génération automatique de code, MISRA C++:2008 pour le code C++ et MISRA C:2012.
Pour en savoir plus sur MISRA C, consultez le site misra.org.uk
Simulink, Stateflow et Embedded Coder sont largement utilisés pour générer du logiciel embarqué conforme à la norme MISRA C®. Les produits de vérification de code Polyspace® sont utilisés pour analyser la conformité du code écrit manuellement ou automatiquement généré avec MISRA C. Polyspace Bug Finder supporte la détection des règles de codage MISRA-C: 2004, MISRA-C++:2008, MISRA C:2012 et MISRA AC AGC.
Vous pouvez configurer un modèle ou un sous-système pour que le générateur de code produise du code conforme à MISRA C: 2012 grâce au Code Generation Advisor. La conformité à MISRA du code généré peut être contrôlée avec Polyspace, et les résultats peuvent être tracés jusqu’au modèle. Vous pouvez annoter au niveau du modèle afin de fournir des justifications en cas d'éventuels écarts.
En savoir plus sur la génération de code conforme à MISRA :
Pour aider davantage les utilisateurs à atteindre la conformité à MISRA C, MathWorks fournit un tableau de support MISRA pour l’utilisation d’Embedded Coder avec des modèles Simulink et Stateflow.
Le package d'analyse MISRA C comprend les éléments suivants :
- Documentation avec récapitulatif des règles et exemples détaillés
- Modèles Simulink