那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于PC-lint,以及如何在MDK中添加PC-lint工具

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-04 09:31 ? 次閱讀

有人問:代碼中類似/*lint !e750... */代表什么意思?

回答這個問題,就要牽涉到本文說的PC-Lint這個工具。

1寫在前面

可能有一定編程經驗的朋友,應該在一些地方都看到過類似/*lint !e750... */這種“注釋”。

但,有多少人去分析過它的含義呢?

比如:在FreeRTOS的tasks.c源碼中有如下一行語句:

#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */

后面/*lint !e961 !e750. */作用就是:在使用PC-Lint工具進行靜態分析時,隱藏本行宏定義未被調用的“錯誤”。

換種方式理解:編譯時,這條語句不出現警告信息(注意:這里是比喻為編譯,其實是PC-Lint靜態分析)。

2

關于PC-Lint

PC-Lint 是GIMPEL SOFTWARE公司開發的C/C++軟件代碼靜態分析工具,它的全稱是PC-Lint/FlexeLint for C/C++。

你可以把它看作是一種更加嚴格的編譯器。它除了可以檢查出一般的語法錯誤外,還可以檢查出那些雖然符合語法要求,但很可能是潛在的、不易發現的錯誤。

C語言的靈活性帶來了代碼效率的提升,但相應帶來了代碼編寫的隨意性,另外C編譯器不進行強制類型檢查,也帶來了代碼編寫的隱患。

PC-Lint識別并報告C語言中的編程陷阱和格式缺陷的發生。它進行程序的全局分析,能識別沒有被適當檢驗的數組下標,報告未被初始化的變量,警告使用空指針,冗余的代碼等。

軟件除錯是軟件項目開發成本和延誤的主要因素,PC-lint能夠幫你在程序動態測試之前發現編碼錯誤,這樣消除錯誤的成本更低。

錯誤號

PC-Lint 能夠檢查出很多語法錯誤和語法上正確的邏輯錯誤,PC-Lint 為大部分錯誤消息都分配了一個錯誤號:

這些錯誤號在文檔中有詳細說明:

命令格式:

更多相關內容可以參考官網:

www.gimpel.com

3

Keil支持PC-Lint說明

在Keil官網有這樣一段信息:

X PC-lint is a powerful static analysis tool that will check your C/C++ source code and find bugs, glitches, inconsistencies, non-portable constructs, redundant code, and much more. It looks across multiple modules, and so, enjoys a perspective your compiler does not have.

A C compiler cannot always detect each and every potential problem in your source files.

This is where PC-Lint comes in.

Supports K&R C, ANSI C, and ANSI/ISO C++ standards

Explicit support for MISRA C and MISRA C++ (Motor Industry Software Reliability Association) standards

Value tracking of auto and static variables detects subtle initialization and value misuse problems

Inter-function Value Tracking - powerful inter-statement value tracking crosses function boundaries

Optional strong type checking (typedef-based) with a rich option set to detect nominal type differences

User-defined semantic checking for function arguments and return values

Each of the Keil development tools, ARM, C51, C251, and C166, support Gimpel Software's PC-Lint. Configuration files are included in the Keil development tools which enable you to quickly and easily begin using PC-Lint in your application development and testing.

http://www.keil.com/pclint

大概意思就是Keil(ARM, C51, C251, and C166)支持PC-Lint,配置文件包含在Keil開發工具中,使您能夠在應用程序開發和測試中快速輕松地開始使用PC-Lint。

還提供了一個例子:

示例代碼:

C51編譯輸出結果:

執行PC-Lint輸出:

示例程序列表(錯誤以突出顯示),C51編譯器輸出和PC-Lint輸出。當PC-Lint檢測到并報告26個錯誤和警告時,C51編譯器會檢測并報告12個錯誤和警告。

4

MDK中添加PC-Lint

要使用PC-Lint,大概需要以下兩步:

安裝PC-Lint

MDK添加PC-Lint


1.安裝PC-Lint

PC-Lint是一款收費的工具,大家可以網上搜索相關po解版本,相關安裝很簡單,這里不說明。

2.MDK添加PC-Lint

在MDK的幫助文檔中,有相關添加和配置說明,我這里也簡單說下。

A.菜單Tools ->Set-up PC-lint進入配置界面(如上圖)

B.添加lint-nt.exe

前提需要安裝PC-Lint,指向安裝路徑下的lint-nt.exe。點擊“...”即可添加(標記1)。

C.添加co-ARMCC-5.lnt

這個路徑是MDK安裝目錄下面,可參看上圖(標記2)。

D.MISRA規則配置

這里參看幫助文檔,選擇MISRA_C_2012_Config(標記3)。

E.增加PC-Lint命令

例如,要禁止PC-lint輸出的info 714消息,可以在此對話框中輸入-e714 (標記4)。

當然,本文重點在于引導大家了解PC-Lint這個工具,想要運用PC-lint這個工具,還需要掌握更多相關規則、配置。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137723
  • 代碼
    +關注

    關注

    30

    文章

    4827

    瀏覽量

    69054
  • MDK
    MDK
    +關注

    關注

    4

    文章

    209

    瀏覽量

    32154
收藏 人收藏

    評論

    相關推薦

    AI PC的崛起

    看到PC“超級周期”的開始。AI PC具有專門的SoC,每秒能夠提供40至60兆次操作(TOPS)的神經處理單元(NPU),有望帶來技術創新的巨大變化。與依賴CPU和GPU的傳統PC不同,AI
    的頭像 發表于 11-14 11:06 ?541次閱讀

    移遠通信亮相驍龍AI PC生態科技日,以領先的5G及Wi-Fi產品革新PC用戶體驗

    PC作為人們學習、辦公、娛樂的重要工具,已經深度融入我們的工作和生活。隨著物聯網技術的快速發展,以及人們對PC性能要求的逐步提高,AI PC
    發表于 11-08 11:26 ?196次閱讀
    移遠通信亮相驍龍AI <b class='flag-5'>PC</b>生態科技日,以領先的5G及Wi-Fi產品革新<b class='flag-5'>PC</b>用戶體驗

    移遠通信亮相驍龍AI PC生態科技日,以領先的5G及Wi-Fi產品革新PC用戶體驗

    PC作為人們學習、辦公、娛樂的重要工具,已經深度融入我們的工作和生活。隨著物聯網技術的快速發展,以及人們對PC性能要求的逐步提高,AIPC成為了行業發展的重要趨勢。11月7-8日,驍龍
    的頭像 發表于 11-08 01:06 ?537次閱讀
    移遠通信亮相驍龍AI <b class='flag-5'>PC</b>生態科技日,以領先的5G及Wi-Fi產品革新<b class='flag-5'>PC</b>用戶體驗

    PC示波器:電子測試與測量的革命性工具

    這一領域帶來了革命性的變化。 PC示波器通過將多個測試儀器集成在一個小型裝置,實現了前所未有的輕便與便攜。與傳統示波器相比,PC示波器不僅重量更輕、體積更小,而且當與筆記本電腦配合使用時,它幾乎成為了一個隨身攜帶的完整
    的頭像 發表于 10-09 10:46 ?367次閱讀

    2026年AI PC市場將占Windows PC半壁江山

     根據最新市場研究機構Canalys的權威預測,人工智能(AI)個人電腦(PC)在Windows PC市場的滲透率正經歷前所未有的飛躍。該機構預計,從當前的不足10%起步,AI PC的市場份額將在
    的頭像 發表于 09-06 16:09 ?878次閱讀

    Lint靜態驗證工具如何助力IC設計

    近年來IC設計的規模和復雜度不斷增大,產品的迭代周期越來越短,傳統的驗證方式已經難以滿足設計團隊的要求。在“設計左移”這一理念的趨勢下,設計流程和方法學不斷進行創新和優化,其中,具備“設計左移”思想的靜態驗證方法實現了將原本在仿真、綜合、布局布線階段出現的問題移動到RTL階段進行檢測和分析,幫助IC設計者在早期發現和診斷設計缺陷,縮短芯片整體開發周期,降低成本。
    的頭像 發表于 09-03 10:15 ?891次閱讀
    <b class='flag-5'>Lint</b>靜態驗證<b class='flag-5'>工具</b>如何助力IC設計

    何在ModelSim添加Xilinx仿真庫

    今天給大俠帶來在FPGA設計應用何在ModelSim添加Xilinx仿真庫,話不多說,上貨。 注意:ModelSim一定要安裝在不帶空格的目錄下,即不要安裝在“Progr
    發表于 07-03 18:16

    AI PC:真正的AI PC,敢于下場

    在過去的半年里,我們無一不在聆聽關于人工智能(AI)PC的種種聲音,然而當步入現實生活時,恐怕仍有眾多讀者對此感到迷茫:這些AI PC究竟具有哪些AI功能呢?誠然,這并非易解之題。毫不掩飾地說,在我
    的頭像 發表于 06-11 15:02 ?775次閱讀

    國產申威平臺pc終端機

    pc終端
    GITSTAR 集特工控
    發布于 :2024年04月28日 11:36:14

    英特爾預測2024年出貨4000萬AI PC,覆蓋輕薄PC及游戲掌機設備

    有國外媒體曾報道稱,上個月末,英特爾公司公布AI PC加速計劃——該項目新增了兩個關于人工智能(AI)的重大推進策略,具體措施包括設立一項名為“AI PC開發者計劃”的全新的項目,以及
    的頭像 發表于 04-10 14:17 ?492次閱讀

    PC817B和PCt1pC有什么區別

    PC817B和PC1pC是兩種不同型號的光耦合器,它們有一些區別。在本文中,我們將詳細介紹它們的特點、應用、性能以及相應的電路設計。 PC817B光耦合器
    的頭像 發表于 04-02 17:24 ?934次閱讀

    傳統PC已過時?2024年AI PC領航未來!

    隨著科技的飛速發展,我們生活的許多方面都在經歷著翻天覆地的變化。在這個信息爆炸的時代,個人電腦(PC)作為我們工作、學習和娛樂的重要工具,其形態和功能也在不斷演進。2024年,被業界普遍認為是傳統
    的頭像 發表于 03-25 10:26 ?725次閱讀
    傳統<b class='flag-5'>PC</b>已過時?2024年AI <b class='flag-5'>PC</b>領航未來!

    聯想4月18日發布AI PC新品,引領AI PC時代

    聯想觀點,適應未來趨勢,PC產業即將步入基于大模型技術的AI PC階段,引領PC市場進入第三個重要代際更迭。于是,AI PC的一些關鍵特性得以揭示出來
    的頭像 發表于 03-21 15:28 ?835次閱讀

    AI PC產品密集發布,預計2025年AI PC占全球PC出貨量40%

    電子發燒友網報道(文/李彎彎)根據市場機構Canalys近日發布的最新報告,2024年標志著傳統PC向AI PC的重大轉變,預估今年全球AI PC出貨量4800萬臺,占PC出貨總量的1
    的頭像 發表于 03-20 01:15 ?4032次閱讀
    AI <b class='flag-5'>PC</b>產品密集發布,預計2025年AI <b class='flag-5'>PC</b>占全球<b class='flag-5'>PC</b>出貨量40%
    大发888娱乐平台| 单机棋牌游戏| 888娱乐城| 百家乐官网秘| 网上百家乐网站导航| 百家乐电子| 环江| 百家乐官网这样赢保单分析| 百家乐马渚| 九头鸟棋牌游戏中心| 评测百家乐官网博彩网站| 百家乐官网几点不用补牌| 百家乐任你博娱乐场开户注册| 姚记娱乐城信誉最好| 游戏房百家乐官网赌博图片| 凯旋门百家乐技巧| 德州扑克怎么分钱| 百家乐官网遥控洗牌器| 澳门百家乐游戏说明| 太阳城 娱乐城| 百家乐官网打印机分析| 赌百家乐波音备用网| 博彩资讯| 百家乐官网娱乐平台代理佣金| 时时博百家乐的玩法技巧和规则 | V博百家乐的玩法技巧和规则| 铜川市| 百家乐视频游戏网站| 棋牌娱乐游戏大厅| 华硕百家乐官网的玩法技巧和规则 | 百家乐官网说明| 澳门百家乐游戏说明| 奎屯市| 真人百家乐在线玩| 八大胜娱乐| 大三元百家乐官网的玩法技巧和规则| 大发888怎么注册账号| 百家乐官网公式与赌法| 澳门太阳城娱乐城| 网络百家乐官网大转轮| 大发888娱乐城送白菜|