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

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

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

如何將MISRA C:2023整合到您的嵌入式開發(fā)流程中

星星科技指導(dǎo)員 ? 來源:embedded ? 作者:Mark Pitchford ? 2023-05-04 09:58 ? 次閱讀

開發(fā)符合 MISRA C 的軟件需要規(guī)劃、文檔和工具,以最好地執(zhí)行指南的意圖和精神。MISRA C:2023 修正案 2012 (AMD4) 和 MISRA C:4 的 2023 版用于開發(fā)安全和安保關(guān)鍵型軟件系統(tǒng),解決了 C 標(biāo)準(zhǔn)的最新兩個版本(ISO/IEC 9899:2011 和 2018)中引入的并發(fā)功能,并將所有 MISRA C 版本合并到一個文檔中。

MISRA C不是編碼風(fēng)格指南,而是一套規(guī)則和指令,用于最小化或消除已知危險的編碼實踐。鑒于對安全和安保關(guān)鍵型系統(tǒng)的這種重要性,AMD4 和 MISRA C:2023 版本使開發(fā)人員有機(jī)會重新審視其流程,以改進(jìn)對有效和高效地證明 MISRA 合規(guī)性的支持。

MISRA 合規(guī)性:2020 指南指出,合規(guī)性聲明必須確定:

使用規(guī)范的軟件開發(fā)過程

應(yīng)用的確切準(zhǔn)則

執(zhí)法方法的有效性

與準(zhǔn)則的任何偏差程度

在項目之外開發(fā)的任何軟件組件的狀態(tài)

新老制造商必須確定如何在不犧牲開發(fā)速度的情況下將MISRA規(guī)則和指令集成到其流程中。

poYBAGRTEQSAVRWlAALe0pdFXeA313.png

圖 1:來自 LDRA 工具套件的 MISRA 合規(guī)性報告示例(來源:LDRA)

MISRA C:2023合規(guī)框架

MISRA C 指南沒有指定實現(xiàn)合規(guī)性的確切流程和工具,因為記錄此類要求會不公平地限制嵌入式開發(fā)團(tuán)隊可以做的事情。相反,MISRA 合規(guī)性:2020 指南提供了“在聲明 MISRA 合規(guī)性時軟件開發(fā)過程中必須涵蓋的內(nèi)容”的定義,作為捕獲最重要活動的框架。

MISRA 指南涵蓋了許多流程和合規(guī)性要點。在這里,我們將介紹需要更多思考的活動,這些活動將對希望簡化合規(guī)性工作的開發(fā)團(tuán)隊產(chǎn)生最大的影響。

定義規(guī)范的軟件開發(fā)流程

MISRA 合規(guī)性:2020 指南指出,“MISRA 指南旨在在記錄的軟件開發(fā)過程框架內(nèi)使用”,并且“遵守 MISRA 指南必須是代碼開發(fā)階段的一個組成部分,在提交代碼以供審查或單元測試之前,需要滿足合規(guī)性要求。

將合規(guī)性集成到新的或現(xiàn)有的開發(fā)流程中,首先要定義如何在生命周期的每一步驗證 MISRA 規(guī)則和指令。這些活動會影響開發(fā)人員培訓(xùn)、合規(guī)性項目的創(chuàng)建和管理,以及合規(guī)性測試的運行方式。

開發(fā)團(tuán)隊?wèi)?yīng)以足夠全面的方式正式記錄這些過程,以確保在開發(fā)生命周期的每個階段完全實現(xiàn)所有軟件需求,并且測試活動涵蓋所有代碼。此文檔必須包括驅(qū)動開發(fā)任務(wù)的所有決策,包括培訓(xùn)、報告、開發(fā)工具鏈的選擇和運行時配置。

在 MISRA C:2023 上培訓(xùn)開發(fā)人員

通過正式培訓(xùn),開發(fā)人員可以花更少的時間試圖自己了解MISRA合規(guī)性,而將更多的時間花在交付代碼上。MISRA 合規(guī)性:2020 指南建議包含有關(guān)嵌入式應(yīng)用程序使用 C 語言的概念以及安全和安保關(guān)鍵系統(tǒng)的細(xì)節(jié)。

除了代碼之外,開發(fā)人員還應(yīng)該了解他們選擇的開發(fā)環(huán)境(從編譯器工具鏈到靜態(tài)分析工具)的安全和安保影響。隨著 MISRA C:2023 包含針對復(fù)雜多線程系統(tǒng)的新指南,刷新開發(fā)人員對他們的選擇如何影響 MISRA 指南的執(zhí)行以及如何減少在并發(fā)應(yīng)用程序中引入違規(guī)的可能性的理解變得更加重要。

靜態(tài)分析工具為課堂培訓(xùn)提供了有效的補(bǔ)充,因為它們在課程結(jié)束后很長時間內(nèi)提供了全面和實時的微學(xué)習(xí)形式。靜態(tài)分析結(jié)果在編寫代碼時強(qiáng)化了 MISRA 規(guī)則和指令,在新手和有經(jīng)驗的開發(fā)人員的頭腦中保持恒定的意識水平。

建立偏差流程

MISRA合規(guī)性要求代碼供應(yīng)商和收購方就規(guī)則和指令的解釋達(dá)成一致。這種一致性至關(guān)重要,因為合規(guī)性的概念因項目而異,具體取決于它們各自的要求和特征。部分一致性來自建立一個管理偏離指南的流程,其中證明合規(guī)性可能不切實際或不可能遵循某個項目。

MISRA 合規(guī)性:2020 指南將偏差記錄定義為包含以下信息

違反的準(zhǔn)則

對可以接受違規(guī)行為的情況的描述

需要偏差的原因

解釋上下文和語言問題的背景信息

一套要求,包括相關(guān)的風(fēng)險評估程序和預(yù)防措施

使用自動化支持合規(guī)性活動

自動化減少或消除了MISRA合規(guī)活動中的手動工作和人為錯誤的可能性。為了從自動化工具中獲得最大收益,開發(fā)團(tuán)隊?wèi)?yīng)按照 MISRA 合規(guī)性:2020 指南的建議,在軟件生命周期的早期部署它們:

“一個試圖在其生命周期后期檢查合規(guī)性的項目可能會花費大量時間重新編碼、重新審查和重新測試,而且這種返工很容易意外引入缺陷?!?/p>

為了簡化合規(guī)性測試,MISRA C:2012引入了兩種規(guī)則分類:

對于分析技術(shù)可以提供結(jié)論性驗證的規(guī)則,可決定

無法確定無法驗證保證的情況

將可判定規(guī)則與MISRA的建議配對,使用靜態(tài)分析進(jìn)行驗證,可以為自動化合規(guī)性測試提供高效而全面的解決方案。

MISRA C:2023 合規(guī)性始于堅實的戰(zhàn)略

將 MISRA 合規(guī)性集成到開發(fā)流程中有助于改善代碼的安全性。這種集成需要了解 MISRA C 規(guī)則和指令,團(tuán)隊將這些規(guī)則和指令嵌入到開發(fā)生命周期的各個方面。

從培訓(xùn)到自動化工具,MISRA合規(guī)流程應(yīng)使開發(fā)人員能夠最大限度地減少已知危險的編碼實踐,并支持代碼供應(yīng)商和收購方之間的期望一致。預(yù)先采用這些目標(biāo)的組織將比那些等待的組織更有可能獲得MISRA合規(guī)性的成功。

審核編輯:郭婷

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

    關(guān)注

    25

    文章

    5421

    瀏覽量

    133813
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18975

    瀏覽量

    302072
  • 自動化
    +關(guān)注

    關(guān)注

    29

    文章

    5485

    瀏覽量

    79008
收藏 人收藏

    評論

    相關(guān)推薦

    如何將功能整合到嵌入式固件

    重要,在嵌入式開發(fā),C語句可能特別難以理解,因為C語句用于修改粗略命名的特殊功能寄存器中看似隨機(jī)的位??芍赜眯赃@與模塊化有關(guān),盡管在本節(jié)
    發(fā)表于 09-09 15:30

    嵌入式開發(fā)流程

    嵌入式開發(fā)流程一般是在PC機(jī)的Windows系統(tǒng)下安裝Ubuntu虛擬機(jī),搭建嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后在Windows下
    發(fā)表于 11-05 06:06

    嵌入式開發(fā)流程是怎樣的?

    本篇文章整理下嵌入式開發(fā)中一些入門的基礎(chǔ)技能,都是根據(jù)以往的工程經(jīng)驗整理,適用于之前沒做過嵌入式開發(fā)的新手。嵌入式開發(fā)流程一般如下,一般是在PC機(jī)的Windows系統(tǒng)下安裝Ubuntu
    發(fā)表于 11-08 06:24

    嵌入式開發(fā)

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進(jìn)行開發(fā),嵌入式Linux是以Linux為基礎(chǔ)的嵌入式作業(yè)系統(tǒng)。這里提供了
    發(fā)表于 12-20 13:21
    <b class='flag-5'>嵌入式開發(fā)</b>

    使用C++構(gòu)建嵌入式開發(fā)框架

    使用C++構(gòu)建嵌入式開發(fā)框架
    發(fā)表于 10-25 11:25 ?17次下載
    使用<b class='flag-5'>C</b>++構(gòu)建<b class='flag-5'>嵌入式開發(fā)</b>框架

    Linux下C編程 嵌入式開發(fā)

    Linux下C編程 嵌入式開發(fā)
    發(fā)表于 10-31 09:35 ?31次下載
    Linux下<b class='flag-5'>C</b>編程 <b class='flag-5'>嵌入式開發(fā)</b>

    如何將IP模塊整合到System Generator for DSP

    了解如何將Vivado HLS設(shè)計作為IP模塊整合到System Generator for DSP。 了解如何將Vivado HLS設(shè)計保存為IP模塊,并了解
    的頭像 發(fā)表于 11-20 05:55 ?3192次閱讀

    如何將ARM嵌入式開發(fā)移植到LabVIEW開發(fā)環(huán)境的資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何將ARM嵌入式開發(fā)移植到LabVIEW開發(fā)環(huán)境的資料說明免費下載。
    發(fā)表于 03-01 08:00 ?20次下載

    嵌入式開發(fā)的應(yīng)用重點是什么

    盡管物聯(lián)網(wǎng),嵌入式視覺,機(jī)器學(xué)習(xí)和其他新興技術(shù)在開發(fā)組織的重要性日益提高,但CC ++仍是嵌入式開發(fā)
    發(fā)表于 12-27 16:17 ?2172次閱讀

    嵌入式開發(fā)流程_嵌入式開發(fā)的前景

    當(dāng)前,嵌入式開發(fā)已經(jīng)逐步規(guī)范化,在遵循一般工程開發(fā)流程的基礎(chǔ)上,嵌入式開發(fā)有其自身的一些特點。主要包括系統(tǒng)需求分析(要求有嚴(yán)格規(guī)范的技術(shù)要求)、體系結(jié)構(gòu)設(shè)計、軟硬件及機(jī)械系統(tǒng)設(shè)計、系統(tǒng)
    發(fā)表于 07-30 11:23 ?2177次閱讀

    嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)流程

    本文主要闡述了嵌入式開發(fā)的產(chǎn)品,其次介紹了嵌入式開發(fā)流程。
    發(fā)表于 08-31 15:38 ?1.1w次閱讀

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門

    本篇文章整理下嵌入式開發(fā)中一些入門的基礎(chǔ)技能,都是根據(jù)以往的工程經(jīng)驗整理,適用于之前沒做過嵌入式開發(fā)的新手。嵌入式開發(fā)流程一般如下,一般是在PC機(jī)的Windows系統(tǒng)下安裝Ubuntu
    發(fā)表于 10-14 10:58 ?79次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門

    嵌入式開發(fā)資料免費分享

    嵌入式開發(fā)資料免費分享嵌入式工程師經(jīng)驗分享:如何學(xué)習(xí)嵌入式開發(fā)截取文檔部分學(xué)習(xí)嵌入式工程師經(jīng)驗分享的資料分享給大家,文檔上從、嵌入式系統(tǒng)的概
    發(fā)表于 10-21 11:07 ?46次下載
    <b class='flag-5'>嵌入式開發(fā)</b>資料免費分享

    嵌入式開發(fā)為什么選擇C語言?它有哪些特點?

    眾所周知,C語言在嵌入式開發(fā)占據(jù)著十分重要的地位,為什么嵌入式開發(fā)要選擇C語言?嵌入式開發(fā)的方
    的頭像 發(fā)表于 01-04 09:56 ?1180次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b><b class='flag-5'>中</b>為什么選擇<b class='flag-5'>C</b>語言?它有哪些特點?

    c語言嵌入式開發(fā)

    電子發(fā)燒友網(wǎng)站提供《c語言嵌入式開發(fā).zip》資料免費下載
    發(fā)表于 11-17 14:11 ?2次下載
    <b class='flag-5'>c</b>語言<b class='flag-5'>嵌入式開發(fā)</b>