Saat ini saya mengembangkan sistem embedded menggunakan sejumlah kompiler yang berbeda, yang paling umum berasal dari sistem IAR.
Kecintaan saya pada perangkat keras adalah apa yang dikerjakan oleh drive yang menggunakan sistem dan firmware. Namun saya tampaknya kurang sedikit dalam rekayasa perangkat lunak.
Saya telah membaca berkali-kali bahwa Lint yang baik sangat berharga untuk kode. Saya ingin tahu apakah ada orang di sini menggunakan Lint, yang Lint itu, dan berapa banyak membantu dalam mendeteksi kesalahan.
sumber
Saya belum pernah menggunakan serat, tetapi saya menemukan bahwa peringatan GCC dapat mendeteksi banyak kesalahan pemrograman.
Inilah CFLAG pilihan saya
CFLAGS + = -Werror -W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmencetak-prototipe -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef -West externs -Wshadow -Wconversion -Wwrite-string -Wno-conversion -Wextra -Wstrict-aliasing -Wcast-qual
Saya juga sudah mencoba Linus Torvalds ' Sparse untuk analisis statis. Tapi, saya pikir alat semacam ini lebih berguna untuk sistem besar.
sumber
Harus saya akui, saya belum pernah menggunakan banyak jenis proyek mikrokontroler / mikroprosesor.
Pada proyek embedded saya saat ini, yang menggunakan C ++ pada PC / 104 SBC berbasis Linux, kami telah menggunakan cppcheck (berfungsi dengan C juga!). Ini bekerja cukup baik, meskipun memiliki masalah dengan pohon warisan kelas yang rumit. Dan itu telah memberikan nilai - itu bagus untuk memeriksa lokasi potensial di mana kebocoran memori dapat terjadi. Tetapi sebagian besar hal yang dicatatnya bergaya - menggunakan preincrement alih-alih postincrement untuk for-loop, hal semacam itu.
Saya juga menggunakan serat online untuk Javascript ketika mengembangkan aplikasi untuk sistem perangkat lunak perusahaan. Itu benar-benar tak ternilai di sana, karena tidak ada alat debugging untuk memeriksa kesalahan sintaksis dalam pengaturan itu.
sumber