組み込みシステムLINTの使用


8

現在、多くの異なるコンパイラーを使用して組み込みシステムを開発していますが、最も一般的なのはIARシステムです。

ハードウェアに対する私の愛は、組み込みシステムとファームウェアを実行するドライブです。しかし、私はソフトウェア工学にかなり欠けているようです。

良いリントはコードにとって非常に貴重であると何度も読んだことがあります。ここにいる誰かがLintを使用しているかどうか、どのLintであるか、およびエラーの検出にどの程度役立つかを知りたいです。

回答:


4

私は過去にlintを使用しましたが、それが有用であることがわかりました。ただし、使用していない大規模なプロジェクトに移行したため、使用を中止する必要がありました。そのため、コードの相互接続が原因で、lintの使用が困難になりました。lintの最大の問題は、誤検知を削除して気にしないように設定することです。昨年、彼らは別のリリースをしたので、今はもっと良いかもしれません。

私が協力しているある会社は、その大規模なプロジェクトを取り上げ、Coverityの静的分析ツールに通しました。ただし、これは多額の資金を使用するため、小規模企業にはお勧めしません。


私は、誤検知のスローを停止するために前もって時間を費やすことを期待しなければならないことを読みました。当時使用したリントは何でしたか?
Kortuk

当時はバージョン8.0でした。
Jay Atkinson、

どんな会社がそれを作ったか知っていますか、そこには多くの異なるリントプログラムがあります。lintはコンパイラーが見逃す小さなlintのため、lintと名付けられていると言われました。
Kortuk

1
GimpelのPC-LINTです。すばらしいのは、少なくとも、使用するコンパイラとエディタに基づいて事前定義されたルールセットを使用して出力を調整するのに役立つことです。彼らは彼らのサイトでダウンロード可能です:gimpel.com
Jay Atkinson

新しいソースコードベースが多くの「誤検知」を吐き出している場合、悲しいことに、通常は壊れています。
Tim Williscroft

6

私はlintを使用していませんが、GCCの警告で多くのプログラミングエラーを検出できることがわかりました。

これが私のお気に入りのCFLAGSです

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

静的分析のために、Linus TorvaldsのSparseも試してみました。しかし、私はこれらの種類のツールは大規模なシステムにとってより有用だと思います。


私が使用しているほとんどのシステムは、50k行のコード範囲にあります。
Kortuk

3

認めざるを得ませんが、マイクロコントローラ/マイクロプロセッサプロジェクトで何らかのリントを使用することはあまりありませんでした。

LinuxベースのPC / 104 SBCでC ++を使用する私の現在の組み込みプロジェクトでは、cppcheckを使用しました(Cでも動作します!)。複雑なクラス継承ツリーに問題がありますが、かなりうまくいきます。そして、それはいくつかの価値を提供しました-それはメモリリークが発生する可能性のある潜在的な場所をチェックするのに適しています。しかし、それが指摘したことのほとんどは文体的でした-forループでは、ポストインクリメントの代わりにプレインクリメントを使用してください。

また、エンタープライズソフトウェアシステムのアプリケーションを開発する際には、Javascriptのオンラインリントを使用しました。そのセットアップで構文エラーをチェックするデバッグツールがなかったので、それは絶対に貴重でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.