Derzeit entwickle ich eingebettete Systeme mit einer Reihe verschiedener Compiler, von denen die häufigsten von IAR-Systemen stammen.
Meine Liebe zur Hardware ist das, was Laufwerke für eingebettete Systeme und Firmware antreibt. Mir scheint jedoch einiges an Software-Engineering zu fehlen.
Ich habe oft gelesen, dass ein guter Lint für Code von unschätzbarem Wert ist. Ich würde gerne wissen, ob jemand hier einen Lint verwendet, welcher Lint es ist und wie sehr er bei der Erkennung von Fehlern hilft.
quelle
Ich habe keine Flusen verwendet, aber ich finde, dass die Warnungen von GCC viele Programmierfehler erkennen können.
Hier sind meine bevorzugten CFLAGS
CFLAGS + = -Werror -W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-Prototypen -Wrict-Prototypen -Wmissing-Deklarationen -Winline -Wundef -Wnested- externs -Wshadow -Wconversion -Wwrite-Strings -Wno-Konvertierung -Wextra -Wstrict-Aliasing -Wcast-Qual
Ich habe auch Linus Torvalds ' Sparse für statische Analysen ausprobiert . Ich denke jedoch, dass diese Art von Tools für große Systeme nützlicher ist.
quelle
Ich muss zugeben, ich hatte nicht viel mit einer Art Flusen in einem Mikrocontroller / Mikroprozessor-Projekt zu tun.
In meinem aktuellen eingebetteten Projekt, das C ++ auf einem Linux-basierten PC / 104 SBC verwendet, haben wir cppcheck verwendet (funktioniert auch mit C!). Es funktioniert ziemlich gut, obwohl es Probleme mit komplizierten Klassenvererbungsbäumen hat. Und es hat einen gewissen Wert geliefert - es ist gut, um nach potenziellen Stellen zu suchen, an denen Speicherlecks auftreten können. Aber die meisten Dinge, die darin erwähnt wurden, waren stilistisch - verwenden Sie Vorinkremente anstelle von Nachinkrementen in For-Loops, so etwas.
Ich habe auch eine Online-Fussel für Javascript verwendet, als ich Anwendungen für ein Unternehmenssoftwaresystem entwickelt habe. Es war dort absolut von unschätzbarem Wert, da es in diesem Setup keine Debugging-Tools gab, mit denen nach Syntaxfehlern gesucht werden konnte.
quelle