В настоящее время я занимаюсь разработкой встраиваемых систем с использованием ряда различных компиляторов, наиболее распространенными из которых являются системы IAR.
Моя любовь к оборудованию - это то, что диски делают встроенные системы и прошивки. Мне, однако, кажется, не хватает немного в разработке программного обеспечения.
Я много раз читал, что хороший Lint неоценим для кода. Я хотел бы знать, использует ли кто-нибудь здесь Lint, какой это Lint, и насколько он помогает в обнаружении ошибок.
источник
Я не использовал lint, но обнаружил, что предупреждения GCC могут обнаружить много ошибок программирования.
Вот мои любимые CFLAGS
CFLAGS + = -Werror -W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-прототипы -Wstrict-prototypes -Wmissing-декларации -Winline -Wundef -Wnested- externs -Wshadow -Wconversion -Wwrite-strings -Wno-преобразование -Wextra -Wstrict-aliasing -Wcast-qual
Я также попробовал с Sparse Линуса Торвальдса для статического анализа. Но я думаю, что такие инструменты более полезны для больших систем.
источник
Должен признаться, я не особо использовал какой-то ворс на проекте микроконтроллера / микропроцессора.
В моем текущем встроенном проекте, который использует C ++ на ПК / 104 SBC на основе Linux, мы использовали cppcheck (работает и с C!). Он работает довольно хорошо, хотя у него есть проблемы со сложными деревьями наследования классов. И это дало некоторую ценность - это хорошо для проверки потенциальных мест, где могут произойти утечки памяти. Но большинство вещей, которые он отметил, были стилистическими - используйте преинкремент вместо постинкремента в цикле for, такого рода вещи.
Я также использовал онлайн-линк для Javascript при разработке приложений для корпоративной системы программного обеспечения. Это было абсолютно бесценно, так как не было никаких средств отладки для проверки синтаксических ошибок в этой настройке.
источник