Was ist im EWARM-Paket von IAR der Unterschied zwischen dem integrierten MISRA C-Checker und dem MISRA C-Checker von CSTAT?

Ein bisschen Hintergrund: Unser Team wird Firmwares für ARM-Mikroprozessoren programmieren. Programmiercodes sollten dem MISRA C-Standard entsprechen. Wir haben uns entschieden, das EWARM-Paket von IAR zu prüfen: https://www.iar.com/iar-embedded-workbench/#!?architecture=ARM¤tTab=editions-and-licensing

Wenn wir uns die EWARM-Paketliste ansehen, sehen wir, dass es zwei mögliche MISRA C-Checker gibt:

  1. Der standardmäßige MISRA C-Checker, der standardmäßig mit dem EWARM-Paket geliefert wird
  2. Der MISRA C Checker unter dem optionalen statischen Analysepaket namens CSTAT

Meine Frage ist, was ist der Unterschied zwischen den beiden Checkern? Angenommen, wir müssen nur die MISRA C-Konformität einhalten, was verlieren wir, wenn wir uns entscheiden, das optionale CSTAT-Paket nicht zu kaufen?

Vielen Dank im Voraus für alle Antworten.

Die Sache mit MISRA ist, dass Sie im Allgemeinen nicht nach dem Standard schreiben, Sie schreiben nach dem, was das Konformitätstool des Kunden für den Standard hält .... Finden Sie heraus, welches MISRA-Konformitätstool der Kunde verwendet, und besorgen Sie sich dann eine Kopie und schreiben Sie an Das. Es ist viel einfacher, von Anfang an das zu verwenden, was der Kunde für seine Verifizierung verwenden wird, als ein Tool von einem Anbieter „weiterzugeben“ und die Verifizierung dann fehlschlägt, wenn der Kunde sein Tool ausführt.
@DanMills Sie sollten keinen Code schreiben, um einem statischen Analysator blind zu folgen. Die meisten MISRA-Checker auf dem Markt sind leider ziemlich kaputt. Wenn es niemanden im Team gibt, der MISRA-C wirklich gut kennt, dann ist das blinde Befolgen des Tools ein sicherer Weg in die Katastrophe.
Dies ist eine reine Programmiertool-Frage, und obwohl Fragen zum Schreiben von Firmware hier zum Thema gehören, ist es normalerweise besser, solche Fragen auf stackoverflow.com zu stellen . (Bitte beachten Sie jedoch, dass Fragen zu Werkzeug-/Einkaufsempfehlungen auf beiden Seiten nicht zum Thema gehören.)
@Lundin, Sie müssen wirklich schreiben, um sowohl eine vernünftige Interpretation des Standards zu erfüllen als auch das dumme Tool zu erfüllen, das der Kunde für seine Konformitätsprüfung verwendet. Ich würde absolut nicht dafür plädieren, nur zu schreiben, um das Verifizierungstool zu bestehen, aber Sie MÜSSEN die Tools-Checks des Kunden bestehen und dem Standard entsprechen, und diese sind eher orthogonal, als man hoffen würde.
@DanMills Vielmehr sollten Sie Ihre eigenen Werkzeugprüfungen bestehen. Der beste Weg, MISRA-C zu implementieren, besteht darin, einen Unternehmenscodierungsstandard auf der Grundlage von MISRA zu erstellen und diesen dann für alle Projekte zu verwenden. MISRA-C pro Projektbasis wird mühsam sein. Wenn Sie einen Kodierungsstandard haben, können Sie dort auch alle Abweichungen und Begründungen aufschreiben. Das bedeutet, dass einzelne Programmierer keine Abweichungen erheben dürfen, sondern solche Abweichungen unternehmensweit durch Aktualisierung des Dokuments erhoben werden müssen. Sobald dies vorhanden ist, ist es viel einfacher, gegen verschiedene Tool-Warnungen zu argumentieren.
@Lundin Manchmal ist es jedoch schwierig, dies mit dem Kunden zu argumentieren ... Obwohl ich zustimme, dass es eine gute Sache ist, einen unternehmensweiten Standard zu haben, der MISRA umfasst (ebenso wie das Tool als Teil des nächtlichen Builds ausgeführt wird), behaupte ich das Es ist nicht immer ausreichend, da Sie manchmal etwas ändern müssen, um die Werkzeugauswahl des Kunden zu erfüllen. Ich hatte tatsächlich schon einmal konformen Code, der das Compliance-Tool des Kunden zum Absturz brachte. Wir haben den Code geändert, weil Sie versuchen, großen Automobilherstellern mitzuteilen, dass ihr Tool kaputt ist.

Antworten (1)

Ich habe IAR letzten Winter die gleiche Frage gestellt. "Muss ich C-STAT für MISRA-C-Checks kaufen?". Grobe Übersetzung ins Englische aus meiner Korrespondenz mit ihnen:

Ja, MISRA-C-Prüfungen werden von C-STAT durchgeführt. Es ist in die IDE integriert, daher müssen Sie eine EWARM-Version mit einer C-STAT-Lizenz kaufen.

Fragen Sie zur Sicherheit den IAR-Vertrieb. Sie sollten sie sowieso nach den Preisen fragen.

Sie müssen jedoch wissen, welches MISRA-C Sie verwenden. Wenn Sie dies nicht tun, sollten Sie diesen Werkzeugkauf nicht tätigen. IAR unterstützt sowohl MISRA-C:2012 als auch MISRA-C:2004.