Uso del sistema integrado LINT

8

Actualmente desarrollo sistemas embebidos utilizando varios compiladores diferentes, los más comunes provienen de sistemas IAR.

Mi amor por el hardware es lo que impulsa los sistemas integrados y el firmware. Sin embargo, parece que me falta bastante en ingeniería de software.

He leído muchas veces que una buena pelusa es invaluable para el código. Me gustaría saber si alguien de aquí usa una Lint, que Lint es, y cuánto ayuda a detectar errores.

    
pregunta Kortuk

3 respuestas

4

He usado la pelusa en el pasado y lo he encontrado útil. Sin embargo, tuve que dejar de usarlo cuando me mudé a un proyecto más grande que no lo estaba usando. Eso dificultó el uso de la pelusa, debido a lo interconectado que estaba el código. El mayor problema con la pelusa es configurarlo para eliminar los falsos positivos y no importa. Puede que sea mejor ahora que hicieron otro lanzamiento en el último año.

Una empresa con la que trabajo ha tomado ese gran proyecto y lo ha puesto a través del analizador estático de Coverity. Sin embargo, esa es una gran cantidad de dinero que se utiliza, por lo que no se recomienda para pequeñas empresas.

    
respondido por el Jay Atkinson
6

No he usado pelusa, pero encuentro que las advertencias de GCC pueden detectar muchos errores de programación.

Aquí están mis CFLAGS preferidos

CFLAGS + = -Werror -W -Wall -ansi -pedantic -Wformat -literal -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declaations -Winline -Wundef -Wnested-externs -Wshadow -Wconversion -Wwrite-strings -Wno-conversion -Wextra -Wstrict-aliasing -Wcast-qual

También probé con Sparse de Linus Torvalds para el análisis estático. Pero creo que este tipo de herramientas son más útiles para sistemas grandes.

    
respondido por el Toby Jaffey
3

Debo admitir que no he tenido mucho uso con un poco de pelusa en un proyecto de microcontrolador / microprocesador.

En mi proyecto integrado actual, que usa C ++ en un PC / 104 SBC basado en Linux, hemos usado cppcheck (¡también funciona con C!). Funciona bastante bien, aunque tiene problemas con árboles de herencia de clase complicados. Y ha proporcionado cierto valor, es bueno para verificar ubicaciones potenciales donde podrían producirse pérdidas de memoria. Pero la mayoría de las cosas que notó fueron estilísticas: usar preincremento en lugar de postincrement en for-loops, ese tipo de cosas.

También utilicé una pelusa en línea para Javascript al desarrollar aplicaciones para un sistema de software empresarial. Fue absolutamente invaluable allí, ya que no había herramientas de depuración para buscar errores de sintaxis en esa configuración.

    
respondido por el J. Polfer

Lea otras preguntas en las etiquetas