En el paquete EWARM de IAR, ¿cuál es la diferencia entre el verificador MISRA C incorporado y el verificador MISRA C de CSTAT?

Un poco de información: nuestro equipo estará programando firmwares para microprocesadores ARM. Los códigos de programación deben cumplir con el estándar MISRA C. Hemos decidido revisar el paquete EWARM de IAR: https://www.iar.com/iar-embedded-workbench/#!?architecture=ARM¤tTab=editions-and-licensing

Mirando la lista de paquetes de EWARM, vemos que hay dos verificadores posibles de MISRA C:

  1. El verificador MISRA C estándar que viene por defecto con el paquete EWARM
  2. El verificador MISRA C bajo el paquete de análisis estático opcional llamado CSTAT

Mi pregunta es, ¿cuál es la diferencia entre las dos fichas? Suponiendo que solo tenemos que seguir el cumplimiento de MISRA C, ¿qué perderemos si optamos por no comprar el paquete CSTAT opcional?

Gracias de antemano por cualquier respuesta.

Lo que pasa con MISRA es que, por lo general, no se escribe según el estándar, se escribe según lo que la herramienta de conformidad del cliente cree que es el estándar... Averigüe qué herramienta de conformidad con MISRA está utilizando el cliente y luego obtenga una copia y escriba a eso. Es mucho más fácil usar cualquier cosa que el cliente vaya a usar para su verificación desde el principio que "pasar" alguna herramienta de un proveedor y luego fallar la verificación cuando el cliente ejecuta su herramienta.
@DanMills No debe escribir código para seguir ciegamente algún analizador estático. Lamentablemente, la mayoría de las fichas MISRA del mercado están bastante rotas. Si no hay nadie en el equipo que realmente conozca bien MISRA-C, entonces seguir ciegamente la herramienta es un camino seguro al desastre.
Esta es una pregunta sobre una herramienta de programación pura, y aunque las preguntas relacionadas con la escritura del firmware están sobre el tema aquí, por lo general es mejor hacer esas preguntas en stackoverflow.com . (Aunque tenga en cuenta que las preguntas de recomendación de herramientas/compras están fuera de tema en ambos sitios).
@Lundin, realmente necesita escribir para cumplir con una interpretación razonable del estándar Y satisfacer cualquier herramienta estúpida que el cliente esté usando para su verificación de conformidad. Absolutamente no recomendaría simplemente escribir para aprobar la herramienta de verificación, pero NECESITA aprobar los controles de las herramientas de los clientes y cumplir con el estándar y estos son bastante más ortogonales de lo que uno esperaría.
@DanMills Más bien, debe pasar sus propios controles de herramientas. La mejor manera de implementar MISRA-C es crear un estándar de codificación empresarial basado en MISRA y luego usarlo para todos los proyectos. MISRA-C por proyecto será una carga. Si tiene un estándar de codificación, también puede anotar todas las desviaciones y razones allí. Lo que significa que los programadores individuales no podrán plantear desviaciones, sino que dichas desviaciones deben plantearse en toda la empresa mediante la actualización del documento. Una vez que esto está en su lugar, es mucho más fácil argumentar en contra de varias advertencias de herramientas.
@Lundin Sin embargo, a veces es difícil discutir eso con el cliente... Si bien estoy de acuerdo en que tener un estándar de toda la empresa que abarque MISRA es algo bueno (al igual que hacer que la herramienta se ejecute como parte de la compilación nocturna), sostengo que no siempre es suficiente, ya que a veces es necesario cambiar algo para satisfacer la elección de herramienta de los clientes. De hecho, el código conforme bloqueó la herramienta de cumplimiento de los clientes antes, cambiamos el código porque intentas decirle a la gran automoción que su herramienta está rota.

Respuestas (1)

Le hice la misma pregunta a IAR el invierno pasado. "¿Necesito comprar C-STAT para los cheques MISRA-C?". Traducción aproximada al inglés de mi correspondencia con ellos:

Sí, las comprobaciones de MISRA-C las realiza C-STAT. Está integrado dentro del IDE, por lo que debe comprar una versión EWARM con una licencia C-STAT.

Para estar seguro, pregunte a ventas de IAR. Querrás preguntarles sobre los precios de todos modos.

Sin embargo, necesita saber qué MISRA-C está utilizando. Si no lo hace, no debería comprar esta herramienta. IAR es compatible con MISRA-C:2012 y MISRA-C:2004.