Je développe actuellement des systèmes embarqués utilisant plusieurs compilateurs différents, les plus courants provenant des systèmes IAR.
Mon amour du matériel est ce qui motive les systèmes embarqués et les micrologiciels. Il me semble cependant manquer un peu en génie logiciel.
J'ai lu à plusieurs reprises qu'un bon Lint est précieux pour le code. Je voudrais savoir si quelqu'un ici utilise un Lint, de quel Lint il s'agit, et combien il aide à détecter les erreurs.
la source
Je n'ai pas utilisé de peluches, mais je trouve que les avertissements de GCC peuvent détecter beaucoup d'erreurs de programmation.
Voici mes CFLAGS préférés
CFLAGS + = -Werror -W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef -Wnested- externs -Wshadow -Wconversion -Wwrite-strings -Wno-conversion -Wextra -Wstrict-aliasing -Wcast-qual
J'ai également essayé Sparse de Linus Torvalds pour l'analyse statique. Mais je pense que ce type d'outils est plus utile pour les grands systèmes.
la source
Je dois admettre que je n'ai pas eu beaucoup d'utilité avec une peluche en quelque sorte sur un projet de microcontrôleur / microprocesseur.
Sur mon projet intégré actuel, qui utilise C ++ sur un PC / 104 SBC basé sur Linux, nous avons utilisé cppcheck (fonctionne également avec C!). Cela fonctionne plutôt bien, bien qu'il ait des problèmes avec les arbres d'héritage de classe compliqués. Et cela a apporté une certaine valeur - c'est bon pour vérifier les emplacements potentiels où des fuites de mémoire pourraient se produire. Mais la plupart des choses qu'il a notées étaient stylistiques - utilisez le pré-incrément au lieu du post-incrément dans les boucles for, ce genre de chose.
J'ai également utilisé une charpie en ligne pour Javascript lors du développement d'applications pour un système logiciel d'entreprise. C'était absolument inestimable, car il n'y avait pas d'outils de débogage pour vérifier les erreurs de syntaxe dans cette configuration.
la source