1. gzyueqian
      13352868059

      嵌入式開發:靜態代碼分析器的7種用途

      更新時間: 2022-08-29 14:03:36來源: 粵嵌教育瀏覽量:8593

        標準C編譯器的一個問題是,它不尋找程序設計中的潛在缺陷,而只尋找其編碼中的缺陷。使用靜態代碼分析器有助于改進固件并捕捉編譯器無法想象的問題。下面是每個嵌入式開發人員都應該熟悉的靜態代碼分析器的七種用法。

        標準C編譯器在確定程序中編寫的代碼是否有效以及是否可以編譯成工作程序方面做得很好。但是它假設,如果它能編譯代碼,那么一切都是好的。這仍然給錯誤留下了很大的空間。當按如下方式使用時,靜態代碼分析器可能是一個非常有價值的工具。

        用途1——捕捉潛在的錯誤

        靜態代碼分析器最廣為人知的用途之一是掃描軟件中的潛在問題和缺陷。這些問題包括從在switch情況下忘記break語句到潛在的緩沖區溢出。靜態代碼分析器具有發現軟件問題的能力,這些問題通常會被編譯器和審查代碼的工程師所忽略。在實現階段的早期建立一個靜態代碼分析器是一個很好的實踐,可以確保潛在的問題被立即處理,而不是在開發周期的后期。

        用途2——實施編碼標準

        使用編碼標準是確保軟件以一致和可讀的方式開發的好方法。編碼標準不僅會指定可讀性的問題,還可以用來實施最佳實踐。許多靜態代碼分析器支持的編碼標準的一個很好的例子是MISRA C。靜態代碼分析器可用于確保嵌入式開發人員沒有違反標準的大多數建議或最佳實踐(然而,一些規則需要視覺檢查,并且不能自動確定合規性)。如果發生了違規,靜態分析器將向開發人員報告違規情況,并采取糾正措施。使用靜態分析器來執行編碼標準的結果是快速確定代碼是否遵循定義的標準。

        用途3——支持嚴格遵守ANSI-C標準

        關心編寫符合ANSI-C標準的可移植軟件的開發人員可以使用靜態分析器來確定是否使用了任何非標準語言功能。將分析器設置為“strict”將會確定感興趣的領域,在這些領域中,對不同編譯器或平臺的可移植性可能會成為一個問題。然后,開發人員可以檢查這些區域并改進軟件,以更好地符合ANSI-C標準,或者至少記錄軟件的哪些區域可能需要額外的移植工作。

        

        用途4——執行強類型檢查

        C編程語言不支持強類型檢查。在C中,如果開發人員要創建自己的類型,編譯器將忽略新類型,而使用基礎C類型。

        用途5——提供尺寸檢查

        C編程語言無法提供任何類型的量綱分析來確保計算的一致性。然而,靜態代碼分析器可以執行這些檢查,并確保千米不會意外地乘以英尺而產生錯誤的結果。量綱分析的設置因工具而異,但這是開發人員應該利用的一個重要特性。

        用途6——支持基本堆棧分析

        嵌入式開發人員了解最壞情況下的堆棧使用對于開發任何基于實時的嵌入式系統都至關重要。有許多方法可以分析和確定最壞情況下的堆棧使用情況,但是開始了解堆棧使用情況的一種方法是使用靜態代碼分析器。靜態分析器可以計算一個函數的堆棧使用和調用圖,以提供關于堆棧需要多深的基本感覺。靜態分析器工具還可以提供對程序函數如何使用以及它們是否被認為是確定性的洞察。使用靜態分析器來了解堆棧使用情況和最壞情況函數是理解最壞情況堆棧分析的良好開端。

        用途7——輔助線程檢查

        靜態分析工具也可用于識別處理器上同時運行的線程和任務的問題。例如,一個分析工具可以識別是否有任何與鎖定或解鎖互斥體相關的異常。線程檢查對于識別實時系統中的問題是非常有用的工具,但是這種分析的設置通常并不簡單。盡管如此,設置工作對于發現難以捉摸或異常的線程事件還是很有價值的。

        結論

        對于希望開發實時系統的嵌入式開發人員來說,靜態分析是一個無價的工具。靜態分析器的這七種用途只是許多可用分析工具中強大特性的幾個例子。使用靜態代碼分析器可以極大地提高代碼庫的質量和健壯性,如果設置得當,甚至可以確保與眾所周知的或定制的編碼標準的一致性和一致性。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲欧美久久综合网站点击 | 亚洲中文字幕aV女同在线 | 色国产综合免费视频在线播放 | 亚洲日韩欧美一区 | 日本激情视频A∨一区 | 日本最新免费的一区二区 |