色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

MISRA編碼標(biāo)準(zhǔn)和靜態(tài)代碼分析器

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者: Ekaterina Nikiforova ? 2022-06-30 14:45 ? 次閱讀

近年來,軟件質(zhì)量、安全和保障已成為重中之重。在我們之前的文章中,我們已經(jīng)提到了歷史上的一些事件,這些事件既造成了巨大的經(jīng)濟(jì)損失,也造成了人員死亡。Ariane 5的爆炸,Therac-25放射治療機(jī)使患者暴露于 20,000 拉德的過量劑量,89 人因豐田的過錯(cuò)而死亡。所有這些故事都有一個(gè)共同點(diǎn):導(dǎo)致巨大損失的軟件錯(cuò)誤。

那么什么是 MISRA?

最初,MISRA(汽車行業(yè)軟件可靠性協(xié)會(huì))成立的目的是為道路車輛中使用的微控制器設(shè)計(jì)一套軟件開發(fā)指南。從那時(shí)起,它就被應(yīng)用于汽車工業(yè)、醫(yī)療設(shè)備、航空航天和國(guó)防等所有對(duì)可靠性和安全性至關(guān)重要的領(lǐng)域。MISRA 標(biāo)準(zhǔn)是由一組規(guī)則和建議組成的文檔,C 和 C++ 開發(fā)人員在開發(fā)其應(yīng)用程序時(shí)應(yīng)遵守這些規(guī)則和建議。MISRA-C:1998 版本有127條規(guī)則。

所有這些規(guī)則都可以分為以下幾類:

強(qiáng)制的

必需 – 允許偏離規(guī)則(但建議記錄在案)

咨詢——非強(qiáng)制性

(來源: 什么是 MISRA 以及如何烹飪)

首先要提到的是,MISRA 標(biāo)準(zhǔn)的應(yīng)用應(yīng)該在開發(fā)過程真正開始之前就開始,并且只有在真正需要的時(shí)候才開始。在其他情況下,特別是當(dāng)代碼庫(kù)足夠大并且不打算在嵌入式系統(tǒng)上使用時(shí),開發(fā)人員將不得不進(jìn)行漫長(zhǎng)而乏味的重構(gòu)。為什么這樣?

WinMerge 的源代碼長(zhǎng)約 25 萬(wàn)行 C 和 C++ 代碼。這是一個(gè)小項(xiàng)目,但是將if語(yǔ)句的主體括在花括號(hào)中的規(guī)則在其中被破壞了大約 2000 次。有 127-228 條這樣的規(guī)則(取決于標(biāo)準(zhǔn)的版本)。

Nana 是一個(gè)用于創(chuàng)建圖形用戶界面的跨平臺(tái)庫(kù),其源代碼長(zhǎng)度不到 10 萬(wàn)行。在這個(gè)項(xiàng)目中,同樣的規(guī)則被打破了大約三千次。

除了關(guān)于花括號(hào)的規(guī)則之外,還有一些規(guī)則:

不得使用 continue 語(yǔ)句;

每個(gè) switch 語(yǔ)句都應(yīng)該有一個(gè)默認(rèn)標(biāo)簽

不得使用 goto 語(yǔ)句;

所有 if 。.. else if 結(jié)構(gòu)都應(yīng)以 else 子句終止;

那么,它是用來做什么的呢?

但是,這些規(guī)則并不意味著讓開發(fā)人員的生活更加艱難。這些是用鮮血寫成的規(guī)則,它們用于使安全關(guān)鍵代碼不易出現(xiàn)錯(cuò)誤。這個(gè)想法是簡(jiǎn)單而清晰的代碼不太可能包含錯(cuò)誤。以下是一些作為證據(jù)的診斷示例:

賦值運(yùn)算符不得用于返回布爾值的表達(dá)式;

所有非 void 的函數(shù)都應(yīng)該返回一個(gè)值;

循環(huán)計(jì)數(shù)器不應(yīng)具有本質(zhì)上的浮動(dòng)類型;

一個(gè)函數(shù)最后應(yīng)該有一個(gè)退出點(diǎn);

遵循 MISRA 指南將有助于提高軟件的可靠性。但是,不熟悉 MISRA 的人可能想知道它是如何使用的。你真的必須記住所有這 127 條規(guī)則嗎?這就是靜態(tài)分析器可以提供幫助的地方。

靜態(tài)分析的目的是什么?

手動(dòng)檢查代碼是否符合 MISRA 標(biāo)準(zhǔn)是一項(xiàng)漫長(zhǎng)而乏味的工作。但實(shí)際上你不必記住所有這些規(guī)則。靜態(tài)代碼分析器可以為您完成所有工作。

靜態(tài)代碼分析是檢測(cè)計(jì)算機(jī)程序源代碼中的錯(cuò)誤和小缺陷的過程。它可以被視為自動(dòng)代碼審查。一些靜態(tài)分析器可以檢查代碼是否符合 MISRA 規(guī)則,正是這些工具將幫助您找到并修復(fù)程序中所有不符合規(guī)則的點(diǎn)。為此,您只需使用分析儀檢查您的項(xiàng)目并研究檢查結(jié)束時(shí)生成的分析報(bào)告。下面我將簡(jiǎn)要演示如何使用 PVS-Studio 分析器和項(xiàng)目 Shairport 作為示例來執(zhí)行此操作。PVS-Studio 可在此處下載

克隆存儲(chǔ)庫(kù)。

pYYBAGK9Rq6AIaujAAE-aWH--yw308.png

運(yùn)行構(gòu)建配置腳本。

poYBAGK9RriASXBeAAF900aVcks432.png

在跟蹤模式下運(yùn)行 PVS-Studio 并構(gòu)建項(xiàng)目。

poYBAGK9RsGAXSjhAASMtsi8K7Q047.png

根據(jù)上一步的結(jié)果分析項(xiàng)目文件。

poYBAGK9RsmAN4kbAANhT7WmPYM112.png

將日志轉(zhuǎn)換為 html。

poYBAGK9RtOANvczAAFj9JPDt4k863.png

完畢。我們現(xiàn)在可以查看日志。

pYYBAGK9RtuAHx02AAR-jZpO5eI066.png

所以,我們今天了解了 MISRA:我們查看了一些規(guī)則,討論了為什么需要這些指南,如何將它們應(yīng)用到您的項(xiàng)目中,等等。我希望這篇文章足夠有趣,不會(huì)讓你昏昏欲睡,而且仍然能提供豐富的信息,讓作者的工作值得。希望現(xiàn)在您對(duì) MISRA 是什么以及需要什么靜態(tài)代碼分析器有了更好的理解。

審核編輯:郭婷

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

    關(guān)注

    48

    文章

    7552

    瀏覽量

    151421
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2108

    瀏覽量

    73649
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2945

    瀏覽量

    66747
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VirtualLab:系統(tǒng)建模分析器

    ,系統(tǒng)建模分析器。本文檔介紹該工具的使用方法。 系統(tǒng)建模分析器 如何運(yùn)行建模分析器 系統(tǒng)建模分析器 例1:光束清理濾波 示例 – 光
    發(fā)表于 12-19 12:36

    如何測(cè)試TPA3118和TPA3116的靜態(tài)電流和靜態(tài)功耗?

    1.如何測(cè)試TPA3118和TPA3116的靜態(tài)電流和靜態(tài)功耗? 2.測(cè)試時(shí)候需要帶負(fù)載嘛?(是否需要接喇叭) 3.如果用萬(wàn)用表測(cè)試應(yīng)該怎么測(cè)?
    發(fā)表于 10-12 06:54

    汽車異構(gòu)硬件平臺(tái)開發(fā)如何進(jìn)行靜態(tài)代碼分析

    先進(jìn)的靜態(tài)代碼分析工具,其新版本中引入的多CCT功能為開發(fā)人員提供了強(qiáng)大的支持,該功能不僅簡(jiǎn)化了多編譯環(huán)境下的代碼
    的頭像 發(fā)表于 10-09 16:15 ?530次閱讀
    汽車異構(gòu)硬件平臺(tái)開發(fā)如何進(jìn)行<b class='flag-5'>靜態(tài)</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>

    傳感的動(dòng)態(tài)特性和靜態(tài)特性參數(shù)介紹

    傳感的特性可以分為靜態(tài)特性和動(dòng)態(tài)特性兩大類,這兩類特性分別描述了傳感在不同輸入條件下的輸出響應(yīng)特點(diǎn)。下面將詳細(xì)介紹這兩類特性的主要參數(shù)。
    的頭像 發(fā)表于 09-29 16:24 ?2147次閱讀

    embOS的MISRA-C:2012一致性

    MISRA C是汽車工業(yè)軟件可靠性協(xié)會(huì)(MISRA)開發(fā)的一套針對(duì)C編程語(yǔ)言的軟件開發(fā)指南,目的是提升嵌入式系統(tǒng)的安全性和可移植性。2012發(fā)布的MISRA C第三版,稱為MISRA
    的頭像 發(fā)表于 08-20 11:35 ?496次閱讀

    whitepaper-perforce-what-is-misra

    如果您熟悉嵌入式軟件的世界,您可能聽說過安全關(guān)鍵系統(tǒng)的MISRA編碼準(zhǔn)則和合規(guī)性。最初為在汽車嵌入式軟件行業(yè),MISRA C for C 和 C++ 被廣泛使用嵌入式行業(yè),從航空航天和國(guó)防到醫(yī)療設(shè)備。本文提供
    發(fā)表于 08-08 15:54 ?0次下載

    代碼靜態(tài)測(cè)試工具Klocwork 2024.2新發(fā)布

    Klocwork 2024.2 為現(xiàn)代?C/C++?分析引擎引入了顯著的準(zhǔn)確性和性能改進(jìn)。此版本還包括增強(qiáng)的安全性和身份驗(yàn)證功能以及改進(jìn)的用戶體驗(yàn),以及?MISRA??和?CERT?規(guī)則集改進(jìn)、Java?語(yǔ)言增強(qiáng)功能以及?Kotlin?的新?CWE?映射。
    的頭像 發(fā)表于 08-06 12:16 ?270次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>靜態(tài)</b>測(cè)試工具Klocwork 2024.2新發(fā)布

    DevOps中的質(zhì)量門工作原理,以及靜態(tài)代碼分析Klocwork和Perforce Helix QAC在質(zhì)量門中的實(shí)踐應(yīng)用

    如何使用靜態(tài)代碼分析工具(如Klocwork 和 Helix QAC)實(shí)現(xiàn)質(zhì)量門。 什么是質(zhì)量門? 質(zhì)量門是在IT或開發(fā)項(xiàng)目中實(shí)施的檢查點(diǎn),這些檢查點(diǎn)要求在進(jìn)入下一個(gè)開發(fā)階段之前達(dá)到最低標(biāo)準(zhǔn)
    的頭像 發(fā)表于 07-29 15:12 ?401次閱讀

    暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定的區(qū)別是什么

    暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定是電力系統(tǒng)穩(wěn)定性分析中的兩個(gè)重要概念,它們分別描述了電力系統(tǒng)在受到擾動(dòng)后的動(dòng)態(tài)響應(yīng)和穩(wěn)態(tài)運(yùn)行狀態(tài)。下面將介紹暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定的區(qū)別,并從多個(gè)方面進(jìn)行比較。 定義上的區(qū)別 暫態(tài)穩(wěn)定
    的頭像 發(fā)表于 07-26 09:41 ?2634次閱讀

    Perforce靜態(tài)代碼分析專家解讀MISRA C++:2023?新標(biāo)準(zhǔn):如何安全、高效地使用基于范圍的for循環(huán),防范未定義行

    MISRA C++:2023——MISRA? C++ 標(biāo)準(zhǔn)的下一個(gè)版本來了!為了幫助您了解 MISRA C++:2023相比于之前版本的變化,我們將繼續(xù)為您帶來Perforce首席技術(shù)
    的頭像 發(fā)表于 06-18 12:57 ?421次閱讀

    MISRA-C-:2004中文版

    MISRA-C-:2004 中文版
    發(fā)表于 06-04 11:52 ?1次下載

    使用 MISRA C++:2023? 避免基于范圍的 for 循環(huán)中的錯(cuò)誤

    在前兩篇博客中,我們?向您介紹了新的 MISRA C++ 標(biāo)準(zhǔn)?和?C++ 的歷史?。在這篇博客中,我們將仔細(xì)研究以 C++ 中?for?循環(huán)為中心的特定規(guī)則。
    的頭像 發(fā)表于 03-28 13:53 ?796次閱讀
    使用 <b class='flag-5'>MISRA</b> C++:2023? 避免基于范圍的 for 循環(huán)中的錯(cuò)誤

    汽車電子行業(yè)的MISRA C標(biāo)準(zhǔn)解讀

    之前分享了一些編程規(guī)范相關(guān)的文章,有位讀者提到了汽車電子行業(yè)的MISRA C標(biāo)準(zhǔn),說這個(gè)很不錯(cuò)。
    的頭像 發(fā)表于 01-17 11:03 ?1204次閱讀

    代碼靜態(tài)測(cè)試工具Helix QAC 2023.4新發(fā)布

    Helix QAC 2023.4 為新的 MISRA C++:2023 指南推出了 100% MISRA C++:2023? 規(guī)則覆蓋率。此版本還包括擴(kuò)展的 C++20 語(yǔ)言支持、數(shù)據(jù)流分析的性能改進(jìn)以及整個(gè)產(chǎn)品中的許多產(chǎn)品體驗(yàn)
    的頭像 發(fā)表于 01-13 12:25 ?503次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>靜態(tài)</b>測(cè)試工具Helix QAC 2023.4新發(fā)布

    Helix QAC—軟件靜態(tài)測(cè)試工具

    Helix QAC是Perforce公司(原PRQA公司)產(chǎn)品,主要用于C/C++代碼的自動(dòng)化靜態(tài)分析工作,可以提供編碼規(guī)則以及信息安全相關(guān)檢查、
    的頭像 發(fā)表于 01-10 17:35 ?670次閱讀
    Helix QAC—軟件<b class='flag-5'>靜態(tài)</b>測(cè)試工具
    主站蜘蛛池模板: 日日夜夜噜噜| 999久久久无码国产精蜜柚| 大陆老熟女60岁| 久久精品一本到99热| 晚夜免费禁用十大亏亏| JAVAPARSER丰满白老师| 久久久久国产| 亚洲国产中文在线视频| 怪物高h粗暴无尽| 女教师二十三歳| 印度12 13free| 国产伊人久久| 甜性涩爱在线播放| 啊片色播电影| 嗯好大好猛皇上好深用力| 樱桃熟了A级毛片| 回复术士勇者免费观看全集| 午夜国产精品影院在线观看| 成人精品视频网站| 欧美精品AV精品一区视频| 最近高清日本免费| 久久国产免费观看精品1| 亚洲精品久久久久中文字幕二区| 国产成人啪精品视频免费网| 成人a毛片久久免费播放| 蜜桃传媒在线观看| 与子敌伦刺激对白亂輪亂性| 国内精品乱码卡一卡2卡三卡| 十七岁日本免费完整版BD| 公和我做好爽添厨房中文字幕| 欧美精品久久久久久久久大尺度| 69xx欧美| 美国特级成人毛片| 最新国自产拍天天更新| 久久一级视频| 在线自拍亚洲视频欧美| 久久精品天天中文字幕| 在线二区 中文 无码| 久久精品亚洲| 中文字幕国产视频| 老师的玉足高跟鞋满足我|