Zut ! Encore un plantage !!! Combien de fois n’avez vous pas prononcé cette phrase, face au blocage d’une application de bureautique bien connue ou face à un crash système ? Sur un ordinateur de bureau, ce type de désagrément n’a d’autre effet que de faire monter votre niveau d’énervement, mais dans le cas d’un système embarqué, les effets sont bien plus graves. Heureusement, Cppcheck est là pour vous aider.
Les langages C et C++ sont les langages les plus utilisés, et de loin, dans les systèmes embarqués. Il s’agit également de langages très permissifs et faiblement typés. Pour ces deux raisons, ils constituent la cible principale du consortium MISRA.
MISRA a eu comme objectif de donner naissance à un ensemble de recommandations et de règles de codage pour ces deux langages. Le résultat de ces travaux est décliné sous la forme de standards de règles de codage, les standards MISRA C et MISRA C++.
1. MISRA
1.1 Niveau de robustesse
Les règles MISRA ont pour finalité d’obtenir un code plus robuste. Le niveau de robustesse est donné par l’indicateur SIL (Safety Integrity Level), qui fournit un niveau relatif de réduction des risques attendus. Les recommandations MISRA ont pour objectif d’atteindre un niveau de sûreté SIL au moins égal à 2, sur une échelle qui en comporte 4. La page Wikipédia de SIL [1] résume bien cet indicateur.
Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
![]()
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite
Déjà abonné ? Connectez-vous
Articles qui pourraient vous intéresser...Distribuez vos traitements Python avec Celery et Docker SwarmMagazine
Domaines
Résumé
Le temps, c'est de l'argent ! Alors, n'en gaspillez plus avec des traitements interminables, distribuez-les ! Programmation avec le 6502 : les sprites de la NES, ou comment coder le jeu Pac-ManMagazine
Résumé
Dans le précédent article, nous avons commencé à nous familiariser avec la partie graphique de la console NES (Nintendo Entertainment System). Aujourd’hui, nous allons réaliser un véritable jeu, ou du moins nous allons suffisamment le débuter pour qu’il commence à être intéressant. Property based testing et mutation testing system en PythonMagazine
Domaines
Résumé
Vous aimez les tests, mais vous en avez marre des tests unitaires classiques ? Venez découvrir d’autres manières de tester votre code ! Réinvention de la roue... des temporisationsMagazine
Résumé
Les temporisations sont essentielles au sein des systèmes d'exploitation et dans certaines applications, pour déclencher des actions à l'échéance d'un délai. Il existe différents algorithmes pour les gérer de manière efficace. Cet article présente la fusion de deux d'entre eux, pour en tirer le meilleur. Mesure fine de déplacement par RADAR interférométrique à synthèse d’ouverture (InSAR) par radio logicielleMagazine
Domaines
Résumé
Nous avons démontré dans le premier article de la série la capacité à mesurer la distance à une cible (range compression), puis dans un deuxième temps à détecter l’angle d’arrivée du signal (azimuth compression). Fort de cette capacité de cartographier des cibles, nous allons conclure cette série sur la conception de RADAR à base de radio logicielle, et le traitement des signaux associé, par la mesure fine de déplacement des cibles par analyse de la phase (interférométrie) du signal, lors de la répétition des mesures.
Ajouter à une liste de lecture
|