0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于PC-lint,以及如何在MDK中添加PC-lint工具

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

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

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

1寫在前面

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

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

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

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

后面/*lint !e961 !e750. */作用就是:在使用PC-Lint工具進(jìn)行靜態(tài)分析時(shí),隱藏本行宏定義未被調(diào)用的“錯(cuò)誤”。

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

2

關(guān)于PC-Lint

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

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

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

PC-Lint識(shí)別并報(bào)告C語言中的編程陷阱和格式缺陷的發(fā)生。它進(jìn)行程序的全局分析,能識(shí)別沒有被適當(dāng)檢驗(yàn)的數(shù)組下標(biāo),報(bào)告未被初始化的變量,警告使用空指針,冗余的代碼等。

軟件除錯(cuò)是軟件項(xiàng)目開發(fā)成本和延誤的主要因素,PC-lint能夠幫你在程序動(dòng)態(tài)測試之前發(fā)現(xiàn)編碼錯(cuò)誤,這樣消除錯(cuò)誤的成本更低。

錯(cuò)誤號(hào)

PC-Lint 能夠檢查出很多語法錯(cuò)誤和語法上正確的邏輯錯(cuò)誤,PC-Lint 為大部分錯(cuò)誤消息都分配了一個(gè)錯(cuò)誤號(hào):

這些錯(cuò)誤號(hào)在文檔中有詳細(xì)說明:

命令格式:

更多相關(guān)內(nèi)容可以參考官網(wǎng):

www.gimpel.com

3

Keil支持PC-Lint說明

在Keil官網(wǎng)有這樣一段信息:

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開發(fā)工具中,使您能夠在應(yīng)用程序開發(fā)和測試中快速輕松地開始使用PC-Lint。

還提供了一個(gè)例子:

示例代碼:

C51編譯輸出結(jié)果:

執(zhí)行PC-Lint輸出:

示例程序列表(錯(cuò)誤以突出顯示),C51編譯器輸出和PC-Lint輸出。當(dāng)PC-Lint檢測到并報(bào)告26個(gè)錯(cuò)誤和警告時(shí),C51編譯器會(huì)檢測并報(bào)告12個(gè)錯(cuò)誤和警告。

4

MDK中添加PC-Lint

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

安裝PC-Lint

MDK添加PC-Lint


1.安裝PC-Lint

PC-Lint是一款收費(fèi)的工具,大家可以網(wǎng)上搜索相關(guān)po解版本,相關(guān)安裝很簡單,這里不說明。

2.MDK添加PC-Lint

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

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

B.添加lint-nt.exe

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

C.添加co-ARMCC-5.lnt

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

D.MISRA規(guī)則配置

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

E.增加PC-Lint命令

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

當(dāng)然,本文重點(diǎn)在于引導(dǎo)大家了解PC-Lint這個(gè)工具,想要運(yùn)用PC-lint這個(gè)工具,還需要掌握更多相關(guān)規(guī)則、配置。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134472
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4674

    瀏覽量

    67818
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    207

    瀏覽量

    31940
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Lint靜態(tài)驗(yàn)證工具如何助力IC設(shè)計(jì)

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

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

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

    國產(chǎn)申威平臺(tái)pc終端機(jī)

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

    英特爾預(yù)測2024年出貨4000萬AI PC,覆蓋輕薄PC及游戲掌機(jī)設(shè)備

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

    PC817B和PCt1pC有什么區(qū)別

    PC817B和PC1pC是兩種不同型號(hào)的光耦合器,它們有一些區(qū)別。在本文中,我們將詳細(xì)介紹它們的特點(diǎn)、應(yīng)用、性能以及相應(yīng)的電路設(shè)計(jì)。 PC817B光耦合器
    的頭像 發(fā)表于 04-02 17:24 ?479次閱讀

    傳統(tǒng)PC已過時(shí)?2024年AI PC領(lǐng)航未來!

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

    AI PC產(chǎn)品密集發(fā)布,預(yù)計(jì)2025年AI PC占全球PC出貨量40%

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)根據(jù)市場機(jī)構(gòu)Canalys近日發(fā)布的最新報(bào)告,2024年標(biāo)志著傳統(tǒng)PC向AI PC的重大轉(zhuǎn)變,預(yù)估今年全球AI PC出貨量4800萬臺(tái),占PC出貨總量的1
    的頭像 發(fā)表于 03-20 01:15 ?3702次閱讀
    AI <b class='flag-5'>PC</b>產(chǎn)品密集發(fā)布,預(yù)計(jì)2025年AI <b class='flag-5'>PC</b>占全球<b class='flag-5'>PC</b>出貨量40%

    技術(shù)、工具介紹愛普生語音數(shù)據(jù)創(chuàng)建PC工具

    數(shù)據(jù)PC
    Piezoman壓電俠
    發(fā)布于 :2024年01月16日 10:36:55

    AI PC是什么?如何變革PC產(chǎn)業(yè)(2023)

    AI PC整合了輕量化AI模型,將實(shí)現(xiàn)各種生成式AI應(yīng)用的離線穩(wěn)態(tài)運(yùn)行。作為設(shè)備、邊緣計(jì)算和云技術(shù)的混合體,AI PC不僅具有強(qiáng)大的計(jì)算能力和先進(jìn)的AI技術(shù),還帶來了創(chuàng)新的交互方式和視覺體驗(yàn)。預(yù)計(jì)2024年將各品牌的AI PC產(chǎn)
    的頭像 發(fā)表于 12-27 17:37 ?1321次閱讀
    AI <b class='flag-5'>PC</b>是什么?如何變革<b class='flag-5'>PC</b>產(chǎn)業(yè)(2023)

    SpyGlass?Lint Turbo結(jié)構(gòu)用戶指南

    電子發(fā)燒友網(wǎng)站提供《SpyGlass?Lint Turbo結(jié)構(gòu)用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 09:48 ?0次下載

    AI PC 靈魂拷問

    AI PC橫空出世,我們匯總7個(gè) 最受大家關(guān)注的問題。 有請(qǐng)英特爾技術(shù)部總經(jīng)理高宇為我們逐一解答。 問題1:誰率先“喊出”了AI PC? 答:英特爾最先提出了AI PC概念,引領(lǐng)PC
    的頭像 發(fā)表于 12-08 19:15 ?444次閱讀
    AI <b class='flag-5'>PC</b> 靈魂拷問

    AI PC:深入變革PC產(chǎn)業(yè)(2023)

    軟件方面,AI PC整合了輕量化AI模型,將實(shí)現(xiàn)各種生成式AI應(yīng)用的離線穩(wěn)態(tài)運(yùn)行。作為設(shè)備、邊緣計(jì)算和云技術(shù)的混合體,AI PC不僅具有強(qiáng)大的計(jì)算能力和先進(jìn)的AI技術(shù),還帶來了創(chuàng)新的交互方式和視覺體驗(yàn)。預(yù)計(jì)2024年將各品牌的AI PC
    的頭像 發(fā)表于 11-22 17:48 ?1842次閱讀
    AI <b class='flag-5'>PC</b>:深入變革<b class='flag-5'>PC</b>產(chǎn)業(yè)(2023)

    如何看待AI PC短線發(fā)展?

    AI PC,即人工智能個(gè)人電腦,是將AI技術(shù)與PC深度融合,這類PC將搭載更高計(jì)算能力的處理器,同時(shí)融合多模態(tài)算法以重塑PC體驗(yàn)。
    的頭像 發(fā)表于 11-10 10:27 ?604次閱讀

    針對(duì)PCPC電源推出MOSFET細(xì)分產(chǎn)品

    國產(chǎn)新風(fēng)尚!WAYON維安針對(duì)PCPC電源推出MOSFET細(xì)分產(chǎn)品
    的頭像 發(fā)表于 11-01 15:10 ?465次閱讀
    針對(duì)<b class='flag-5'>PC</b>及<b class='flag-5'>PC</b>電源推出MOSFET細(xì)分產(chǎn)品

    分享一款不錯(cuò)的嵌入式靜態(tài)代碼掃描工具

    之前給大家分享過嵌入式開發(fā)常用的代碼靜態(tài)分析工具,比如:PC-lint、LDRA、VectorCAST等。
    的頭像 發(fā)表于 10-16 15:39 ?1929次閱讀
    分享一款不錯(cuò)的嵌入式靜態(tài)代碼掃描<b class='flag-5'>工具</b>