Embedded System LINT digunakan

8

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.

Kortuk
sumber

Jawaban:

4

Saya telah menggunakan serat di masa lalu, dan saya merasa berguna. Namun, saya harus berhenti menggunakannya ketika saya pindah ke proyek yang lebih besar yang tidak menggunakannya. Itu membuatnya sulit untuk menggunakan serat, karena betapa saling terkait kode itu. Masalah terbesar dengan serat adalah mengonfigurasinya untuk menghilangkan positif palsu dan tidak peduli. Mungkin lebih baik sekarang bahwa mereka telah melakukan rilis lain pada tahun lalu.

Satu perusahaan tempat saya bekerja telah mengambil proyek besar itu dan memasukkannya ke dalam alat analisis statis Coverity. Namun, itu adalah sejumlah besar uang untuk digunakan, jadi tidak disarankan untuk perusahaan kecil.

Jay Atkinson
sumber
Saya membaca a Saya harus berharap untuk menghabiskan waktu di depan agar berhenti membuang positif palsu. Serat apa yang Anda pilih untuk digunakan pada saat itu?
Kortuk
Pada saat itu versi 8.0.
Jay Atkinson
Apakah Anda tahu perusahaan apa yang membuatnya, ada banyak program Lint yang berbeda di luar sana. Saya diberitahu itu bernama lint karena potongan-potongan kecil latt menemukan bahwa kompiler ketinggalan.
Kortuk
1
Maaf, PC-LINT Gimpel. Apa yang baik adalah bahwa mereka setidaknya membantu Anda menjinakkan output beberapa dengan beberapa set aturan yang telah ditetapkan berdasarkan kompiler dan editor yang Anda gunakan. Mereka tersedia untuk diunduh di situs mereka: gimpel.com
Jay Atkinson
Jika basis kode sumber baru Anda memuntahkan banyak "false positive" itu menyedihkan, biasanya rusak.
Tim Williscroft
6

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.

Toby Jaffey
sumber
sebagian besar sistem saya bekerja dengan berada di baris kode rentang 50k.
Kortuk
3

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.

J. Polfer
sumber