日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

不得使用 continue 語句;

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

不得使用 goto 語句;

所有 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)注

    49

    文章

    8894

    瀏覽量

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

    關(guān)注

    22

    文章

    2131

    瀏覽量

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

    關(guān)注

    96

    文章

    2953

    瀏覽量

    70768
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    [VirtualLab] 橢圓偏振分析器

    材料特性。它對(duì)入射輻射與所研究材料相互作用的光學(xué)響應(yīng)變化非常敏感。此用例演示了橢圓偏振儀的基本原理,并說明了 VirtualLab Fusion中內(nèi)置橢圓偏振分析器的使用。 橢圓偏振儀的基本原理 當(dāng)
    發(fā)表于 04-09 08:07

    深入解析Microchip HCS370 KEELOQ? 代碼跳變編碼器

    深入解析Microchip HCS370 KEELOQ? 代碼跳變編碼器 在電子工程師的日常工作中,安全可靠的遠(yuǎn)程無鑰匙進(jìn)入(RKE)系統(tǒng)設(shè)計(jì)是一個(gè)重要的課題。Microchip的HCS370
    的頭像 發(fā)表于 04-07 11:20 ?240次閱讀

    深入解析Microchip HCS361 KEELOQ? 代碼跳變編碼器

    深入解析Microchip HCS361 KEELOQ? 代碼跳變編碼器 在當(dāng)今的電子安全領(lǐng)域,代碼跳變技術(shù)為我們提供了強(qiáng)大的安全保障。Microchip的HCS361 KEELOQ? 代碼
    的頭像 發(fā)表于 04-07 11:20 ?241次閱讀

    探秘HCS301:安全可靠的代碼跳變編碼器

    探秘HCS301:安全可靠的代碼跳變編碼器 在電子工程領(lǐng)域,安全可靠的遠(yuǎn)程無鑰匙進(jìn)入(RKE)系統(tǒng)一直是研究和開發(fā)的重點(diǎn)。Microchip Technology Inc.推出的HCS301代碼跳變
    的頭像 發(fā)表于 04-07 11:05 ?201次閱讀

    深入解析HCS300:高性能代碼跳變編碼器的技術(shù)探秘

    深入解析HCS300:高性能代碼跳變編碼器的技術(shù)探秘 在電子工程領(lǐng)域,安全可靠的遠(yuǎn)程無鑰匙進(jìn)入(RKE)系統(tǒng)一直是研究的重點(diǎn)。Microchip Technology Inc.推出的HCS300代碼
    的頭像 發(fā)表于 04-07 10:50 ?154次閱讀

    深入解析Microchip HCS201 KEELOQ? 代碼跳變編碼器

    深入解析Microchip HCS201 KEELOQ? 代碼跳變編碼器 在電子安全領(lǐng)域,遠(yuǎn)程無鑰匙進(jìn)入(RKE)系統(tǒng)的安全性至關(guān)重要。Microchip的HCS201 KEELOQ? 代碼跳變
    的頭像 發(fā)表于 04-07 10:50 ?134次閱讀

    深入解析Microchip HCS200 KEELOQ? 代碼跳變編碼器

    深入解析Microchip HCS200 KEELOQ? 代碼跳變編碼器 在電子工程領(lǐng)域,安全可靠的編碼技術(shù)對(duì)于各種應(yīng)用至關(guān)重要。今天,我們將深入探討Microchip的HCS200 KEELOQ
    的頭像 發(fā)表于 04-07 10:40 ?149次閱讀

    深入解析Microchip HCS361 KEELOQ? 代碼跳變編碼器

    深入解析Microchip HCS361 KEELOQ? 代碼跳變編碼器 在當(dāng)今的電子安全領(lǐng)域,可靠且安全的遠(yuǎn)程無鑰匙進(jìn)入(RKE)系統(tǒng)至關(guān)重要。Microchip的HCS361 KEELOQ
    的頭像 發(fā)表于 03-26 16:15 ?212次閱讀

    編碼器接口定義及標(biāo)準(zhǔn)接線方法

    編碼器以非接觸式磁場(chǎng)檢測(cè)技術(shù)為核心,具備抗油污、抗振動(dòng)、寬溫工作、可靠性高等突出優(yōu)勢(shì),已廣泛應(yīng)用于伺服驅(qū)動(dòng)、云臺(tái)控制、機(jī)器人關(guān)節(jié)、AGV、數(shù)控機(jī)床、精密傳動(dòng)等工業(yè)與消費(fèi)電子領(lǐng)域。接口定義標(biāo)準(zhǔn)
    的頭像 發(fā)表于 03-12 15:42 ?373次閱讀

    C語言安全編碼指南:MISRA C、CERT C、CWE 與 C Secure 標(biāo)準(zhǔn)對(duì)比與Perforce QAC應(yīng)用詳解

    如何編寫真正安全的C語言代碼?指南涵蓋MISRA C、CERT、CWE等國(guó)際安全編碼標(biāo)準(zhǔn)對(duì)比,以及如何借助Perforce QAC自動(dòng)檢測(cè)漏洞。推薦給嵌入式/汽車/工業(yè)軟件的開發(fā)者!
    的頭像 發(fā)表于 01-26 17:38 ?1164次閱讀
    C語言安全<b class='flag-5'>編碼</b>指南:<b class='flag-5'>MISRA</b> C、CERT C、CWE 與 C Secure <b class='flag-5'>標(biāo)準(zhǔn)</b>對(duì)比與Perforce QAC應(yīng)用詳解

    如何在Zephyr中進(jìn)行靜態(tài)代碼分析

    在嵌入式軟件開發(fā)中,“能編譯通過”并不等于“可以放心交付”。安全性、可靠性和合規(guī)性是產(chǎn)品能否順利量產(chǎn)的關(guān)鍵。進(jìn)入量產(chǎn)的Bug會(huì)浪費(fèi)寶貴的工程時(shí)間,也會(huì)削弱用戶信任;安全漏洞可能暴露設(shè)備,帶來嚴(yán)重后果;在受監(jiān)管市場(chǎng)中,若未滿足MISRA或CERT檢查要求,甚至?xí)苯訉?dǎo)致產(chǎn)品發(fā)布延遲。
    的頭像 發(fā)表于 10-17 10:28 ?1089次閱讀

    汽車軟件團(tuán)隊(duì)必看:基于靜態(tài)代碼分析工具Perforce QAC的ISO 26262合規(guī)實(shí)踐

    ISO 26262合規(guī)指南,從ASIL分級(jí)到工具落地,手把手教你用靜態(tài)代碼分析(Perforce QAC)實(shí)現(xiàn)高效合規(guī)。
    的頭像 發(fā)表于 08-07 17:33 ?1370次閱讀
    汽車軟件團(tuán)隊(duì)必看:基于<b class='flag-5'>靜態(tài)</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>工具Perforce QAC的ISO 26262合規(guī)實(shí)踐

    如何在AURIX Dev Studio中使用分析器?

    由于 ADS 版本 V1.10.10 中的 DAS 8.2.0 不兼容,分析器已從 ADS 中刪除 我們?cè)谶@里有什么選擇?
    發(fā)表于 07-28 06:22

    Perforce QAC產(chǎn)品簡(jiǎn)介:面向C/C++的靜態(tài)代碼分析工具(已通過SO 26262認(rèn)證)

    Perforce QAC專為C/C++開發(fā)者打造,支持多種編碼規(guī)范、功能安全標(biāo)準(zhǔn)(ISO 26262)等,廣泛用于汽車、醫(yī)療、嵌入式開發(fā)領(lǐng)域,可幫助快速識(shí)別關(guān)鍵缺陷、提升代碼質(zhì)量、實(shí)現(xiàn)合規(guī)交付。
    的頭像 發(fā)表于 07-10 15:57 ?1508次閱讀
    Perforce QAC產(chǎn)品簡(jiǎn)介:面向C/C++的<b class='flag-5'>靜態(tài)</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>工具(已通過SO 26262認(rèn)證)

    Helix QAC 2025.1 重磅發(fā)布!MISRA C:2025? 100%覆蓋

    和服務(wù)存儲(chǔ)占用。? 編碼規(guī)范支持(MISRA C:2025?、CERT C)? ? MISRA C:2025? 全規(guī)范覆蓋 Helix QAC 2025.1 提供全新的 MC25CM
    的頭像 發(fā)表于 05-13 16:48 ?1640次閱讀
    Helix QAC 2025.1 重磅發(fā)布!<b class='flag-5'>MISRA</b> C:2025? 100%覆蓋
    松江区| 莆田市| 格尔木市| 合水县| 财经| 江门市| 虹口区| 牡丹江市| 梁平县| 建水县| 阿克苏市| 桃江县| 长沙市| 曲松县| 神木县| 兰溪市| 涟源市| 山丹县| 浦城县| 射阳县| 常宁市| 金沙县| 石楼县| 区。| 宜丰县| 林州市| 古蔺县| 宝应县| 东至县| 阿城市| 全州县| 黄骅市| 施甸县| 宝兴县| 酒泉市| 龙里县| 伊春市| 常熟市| 平江县| 宁安市| 宁河县|