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

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

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

3天內不再提示

在MISRA合規環境中控制汽車軟件偏差

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Fergus Bolger ? 2022-06-15 15:45 ? 次閱讀

C 和 C++ 在某種程度上是嵌入式軟件開發中使用最廣泛的語言。VDC 最近的研究表明,70% 的受訪嵌入式系統公司使用 C,42% 使用 C++。幾乎每個處理器都實現了 C。它提供了廣泛的資源和庫,并得到了廣泛的工具的支持。

尤其是 C 語言,允許開發人員做許多本質上不正確的事情。編寫符合語言標準的代碼太容易了,但會導致程序失敗(崩潰)或未定義的行為。常見的示例是導致訪問數組邊界之外的內存的代碼或導致整數溢出的算術運算。

編碼標準的哲學

業界接受的解決這些危害的方法是采用“編碼標準”。最簡單的編碼標準定義了一組一致的編碼實踐。盡管風格的統一性在軟件項目中可能很有價值,但它們并沒有解決軟件質量的重要屬性,例如可靠性、可移植性或可維護性。編碼標準更基本的作用是通過制定一組規則來定義編程語言的更安全的子集,以消除已知危險的編碼結構。

體現這一安全子設置原則的汽車工業軟件可靠性協會 (MISRA) 編碼指南現已在全球范圍內被公認為用 C 和 C++ 開發安全關鍵型軟件的基準。它們已被廣泛接受,因為它們簡潔易讀,并且專注于基本問題。最近一項針對 500 名受訪者的民意調查 (Ganssle, 2014) 揭示了一些關于編碼標準采用率的有趣數據[1]。主要發現表明,在使用的所有編碼標準中,約有 60% 是基于 MISRA 的。采用的嚴格性是另一個有趣的發現,基于 MISRA 的編碼規則集在開發團隊中實現了 75% 的一致性使用,而其他規則集的使用率不到 50%。

偏差原理

MISRA 編碼標準包含廣受推崇的 C 和 C++ 語言開發指南。這些指南側重于開發關鍵軟件系統時的重要問題。MISRA 還認識到,在某些情況下,遵守編碼指南是不合理甚至不可能的,并且有必要偏離某些規則。偏差說明了在特定情況下不遵守特定編碼規則的原因。它還提供了放寬特定規則的程度的理由和描述,并提供了一個適當構建的安全案例,包括減輕不遵守的影響。

但是,如果沒有仔細說明違規范圍,基本偏差工具可能會被誤解或濫用,并最終破壞指南的有效性。

限制偏差的使用

就像編碼標準本身需要客觀的創造和充分理解的理由一樣,偏離編碼規則的原因同樣需要一個共同的表達和商定的解釋以及它們的應用范圍。汽車行業是 MISRA 最初且仍處于領先地位的應用領域,它已面對這一要求。MISRA 本身和一個國家機構日本汽車制造商協會 (JAMA) 都已開始制定允許特定偏離完全 MISRA 合規性的條件的過程。

這項工作的主旨是定義一組嚴格限制范圍的規則偏差。一個重要的第一階段是對偏離規則不合規的廣泛原因進行分類。

分類偏差原因

通過將偏差分為以下幾類,合規的實際困難變得更加明顯。此外,這種分類可以防止不適當的偏差和編碼標準意圖的弱化。

表現

建議將性能作為不遵循良好編碼實踐的原因似乎很奇怪且不直觀,但以下現實生活中的情況證明了這種需要:

作為車輛發動機控制系統的一部分,需要定期累積正時變量。該代碼經過正確制定以符合 MISRA-C:2012 規則 10.6(不應分配給更廣泛類型的值),內容如下:

extern uint16_t 數量,time_step;uint32_t prod = (uint32_t) 數量 * (uint32_t) time_step;

強制轉換確保 16 位操作數不會在此編譯器的 32 位乘法中溢出。但是,編譯器使用長乘法的“移位和加法”模式而不是它配備的 IMUL(有符號乘法)模式來執行此操作。編譯器供應商已澄清 IMUL 模式僅發生在隱式轉換上,要求表達式讀?。?/p>

uint32_t 產品 = 數量 * 時間步長;// 偏離規則 10.6

通過在這種情況下允許隱式轉換,保證了單個時鐘周期的 IMUL 操作,而不是前者的約 100 個時鐘周期的最壞情況執行,從而證明了基于性能的受控偏差是合理的。

外部(第三方)代碼

此類別包括通用庫、自動生成的代碼和遺留的內部代碼模塊,甚至只是包含關鍵應用程序算法的復雜函數。公共領域庫的維護者,鑒于其廣泛的應用領域,很少有動力遵守 MISRA 或其他編碼標準。自動生成的代碼,除非符合 ISO 26262 等功能安全標準,否則可能包含固有的 MISRA 違規。遺留代碼可能早于項目采用 MISRA。為滿足 MISRA 規則而進行的可能重構的影響分析本身可能會引起關注。所有這些情況下的安全案例都是基于“使用合格”的依賴以及其他特定的質量措施。

構建配置

汽車供應商應用程序的一個特殊功能是根據客戶需要提供單個代碼庫的許多變體。不是對這種交付進行構建級控制,而是部署配置機制來控制每個變體的功能交付。因此,MISRA 合規性可能會在冗余代碼、表達式不變性和相關的全局問題方面受到影響。

訪問硬件

為了訪問寄存器、尋址絕對內存和控制中斷,嵌入式開發人員需要訪問特定于編譯器的 C 語言擴展,從而導致不符合 MISRA。安全案例通常需要仔細的單元測試覆蓋。

防御性編碼

鑒于 C 語言中缺乏強大的異常處理功能,防御性編碼實踐可能涉及例如對不可預見行為的編程防護。一個功能齊全的分析工具將正確檢測不變的條件和無法訪問的代碼。安全案例必須涉及這些路徑或條件的強制單元測試執行。

語言特點

使用“最近的”語言結構有有效的代碼質量原因,例如布爾或“long long”類型或內聯函數。但是,這些可能需要偏離舊版本的 MISRA。安全問題是即使有 15 年歷史的 C99 結構也不能保證得到所有編譯器的支持。

受控偏差的結構

對不同的基本原理進行分類是創建適當約束的偏差結構的第一步。這自然會導致按規則和類別詳細說明所有特定的已知偏差案例。MISRA 和 JAMA 都在行業參與的情況下記錄了一組規則范圍限制,每個限制都有詳細的理由和安全案例。

即使在汽車領域之外,這些舉措也很重要。MISRA 編碼標準最初是為汽車行業設計的,但從早期開始,它就被許多其他嵌入式環境所采用,從消費產品到醫療設備,從工業控制EDA。同樣,對于任何采用編碼標準的人來說,建立一個受控偏差結構都很重要。

自動化工具支持

沒有自動執行手段和豐富的審計和報告能力的編碼標準將很快成為書柜的裝飾品,很少被引用或遵循。一個稱職的自動化靜態分析工具的起點必須是其診斷輸出的準確性、對所提出的每個問題的清晰理解和解釋,以及針對軟件項目的每個版本的詳細報告。

但即使是自動化工具執行環境也需要了解和應用已批準的偏差政策,特別是因為這消除了完全合規的障礙。編碼規則和偏差策略都必須方便開發人員、領導和經理信任,并便于詳細的 QA 報告。

基本偏差系統會將規則抑制的每個實例與其支持偏差耦合,并在相關源代碼的生命周期內保持這種耦合(圖 1)。在處理受控偏差時,要求更加復雜。對相關編碼規則的任何壓制都必須遵守更嚴格的有效限制,并且在該受控偏差集之外不得進行壓制。在選擇要抑制報告診斷的特定代碼位置時,必須限制開發人員僅使用允許的受控偏差范圍進行抑制。

圖 1:受控偏差的工具執行。

poYBAGKpjjGAEH2bAASYgZJvdl8221.png

關鍵系統的安全代碼

MISRA C 編碼標準是在許多嵌入式環境及其他環境中安全和防御性使用 C 的代名詞。由于在 C 語言的限制使用方面既全面又廣泛,控制偏差的系統現在被認為是必要的,正如各種行業和社區為指定這種縮減所做的努力所證明的那樣?,F在正在為工業用途制定合理的具體偏差原因。對受控偏差計劃的復雜和自動化工具支持以及報告和合規解決方案的其他元素今天可用。

審核編輯:郭婷

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

    關注

    5085

    文章

    19137

    瀏覽量

    305670
  • 寄存器
    +關注

    關注

    31

    文章

    5355

    瀏覽量

    120500
  • 編譯器
    +關注

    關注

    1

    文章

    1634

    瀏覽量

    49150
收藏 人收藏

    評論

    相關推薦

    IEEE802.3bt的

    怎么知道部件是否真正符合以太網 IEEE 標準?在上次 IEEE802.3bt 任務組會議、討論 PSE 的可能故障檢測方法時提出了該主題。與 USB 不同,USB 實施者論壇制定了
    發表于 09-14 11:00

    軟件編程規范(MISRA-C)

    MISRA-C是一種汽車制造業嵌入式C編碼標準。FreeRTOS符合MISRA-C編程規范,就連大名鼎鼎的uCOS也宣稱基本符合MISRA-C編程規范。
    發表于 11-02 18:29 ?26次下載

    MCU實現汽車功能安全

    MCU實現汽車功能安全
    發表于 01-12 22:20 ?18次下載

    汽車電子行業的MISRA C標準分享

    之前給大家分享過 MISRA C 相關的內容,今天給大家分享一份汽車電子行業的MISRA C標準。 什么是MISRAMISRA (The
    的頭像 發表于 05-11 13:43 ?1908次閱讀

    MISRA性的五個實用技巧

    回過頭來對違規行為進行詳細分析,很容易看到關于整個過程的更大問題。MISRA 的文檔“MISRA 性:2016”比語言子集本身受到的新聞報道要少得多,但它對于了解您選擇的靜態分析工
    的頭像 發表于 07-22 08:06 ?1576次閱讀
    <b class='flag-5'>MISRA</b><b class='flag-5'>合</b><b class='flag-5'>規</b>性的五個實用技巧

    MISRA C安全可靠編程的地位

    C編程語言的普及,以及它的許多陷阱和陷阱,導致了MISRA CC用于高完整性軟件的領域取得了巨大的成功。這一成功促使工具供應商提出了許多MISRA C檢查器的競爭實現。工具
    的頭像 發表于 11-23 11:55 ?980次閱讀
    <b class='flag-5'>MISRA</b> C<b class='flag-5'>在</b>安全可靠編程<b class='flag-5'>中</b>的地位

    Parasoft支持更新MISRA C:2012,提供最新的安全和合編碼指南

    作為擁有30多年自動化軟件測試經驗的全球領導者Parasoft,今天宣布支持MISRA C:2012修正案3(AMD3)和技術更正2(TC2)。作為MISRA委員會的成員,Parasoft一直
    的頭像 發表于 02-06 14:15 ?1097次閱讀

    如何將MISRA C:2023整合到您的嵌入式開發流程

    MISRA C不是編碼風格指南,而是一套規則和指令,用于最小化或消除已知危險的編碼實踐。鑒于對安全和安保關鍵型系統的這種重要性,AMD4 和 MISRA C:2023 版本使開發人員有機會重新審視其流程,以改進對有效和高效地證明 MIS
    的頭像 發表于 05-04 09:58 ?3011次閱讀
    如何將<b class='flag-5'>MISRA</b> C:2023整合到您的嵌入式開發流程<b class='flag-5'>中</b>

    汽車安全如何發揮作用

    汽車安全汽車制造商和零部件制造商必須完成的一項工作,以便開發對確保安全性來說至關重要的硬件和軟件產品,并達到
    發表于 05-16 15:31 ?338次閱讀

    潤和軟件聯合主辦openEuler &amp; OpenHarmony 社區SIG開源共建研討會

    近日,由江蘇潤和軟件股份有限公司(以下簡稱“潤和軟件”)參與聯合主辦的“openEuler OpenHarmony 社區 SIG 開源
    的頭像 發表于 06-27 11:30 ?617次閱讀
    潤和<b class='flag-5'>軟件</b>聯合主辦openEuler &amp; OpenHarmony 社區<b class='flag-5'>合</b><b class='flag-5'>規</b>SIG開源<b class='flag-5'>合</b><b class='flag-5'>規</b>共建研討會

    靜態代碼分析器工具Helix QAC 2023.2: 提供 100% 的 MISRA C:2012 和 MISRA C:2023 規則覆蓋率

    Helix QAC 2023.2 提供 100% 的 MISRA C:2012 和 MISRA C:2023 規則覆蓋率,并更新相應的性模塊以支持
    的頭像 發表于 07-31 22:53 ?1202次閱讀
    靜態代碼分析器工具Helix QAC 2023.2: 提供 100% 的 <b class='flag-5'>MISRA</b> C:2012 和 <b class='flag-5'>MISRA</b> C:2023 規則覆蓋率

    嵌入式軟件代碼:簡單幾步來滿足關鍵軟件開發項目的需要

    什么是軟件?有哪些軟件標準?什么是代碼標準?什么是功能安全標準?什么是功能信息安全標準?軟件
    發表于 03-16 16:46 ?1次下載

    用“開源”的方式講開源的,“診所”,等你來問!

    和法律體系,鼓勵企業開放軟件源代碼、硬件設計和應用服務” 。 ——十四五規劃 近年來,我國開源生態發展態勢迅猛,“開源吞噬軟件”的態勢我國已悄然揭開新篇章。隨之而來的開源
    的頭像 發表于 12-05 19:35 ?726次閱讀
    用“開源”的方式講開源的<b class='flag-5'>合</b><b class='flag-5'>規</b>,<b class='flag-5'>合</b><b class='flag-5'>規</b>“診所”,等你來問!

    芯來、IAR和MachineWare合作加速RISC-V ASIL汽車芯片的創新

    芯來科技、IAR和MachineWare緊密合作,加速RISC-V ASIL汽車解決方案的創新。此次合作簡化了汽車電子的固件和MCAL開發,提供了虛擬和物理硬件平臺之間的無縫集成。
    的頭像 發表于 04-09 11:25 ?841次閱讀

    whitepaper-perforce-what-is-misra

    如果您熟悉嵌入式軟件的世界,您可能聽說過安全關鍵系統的MISRA編碼準則和合性。最初為汽車嵌入式軟件
    發表于 08-08 15:54 ?0次下載
    主站蜘蛛池模板: 中文无码第3页不卡av| 国产品无码一区二区三区在线| 精品亚洲视频在线观看| 妖精视频免费看| 久久资源365| md2.pud 麻豆传媒官网| 涩涩涩涩爱网站| 国内外成人免费在线视频| 中文字幕在线视频在线看| 男人脱女人衣服吃奶视频| 国产成人永久免费视频| 伊人成综合网伊人222| 人妻少妇69式99偷拍| 国产精品热久久高潮AV袁孑怡| 亚洲欧美日韩精品久久奇米色影视| 麻豆E奶女教师国产精品| 出轨的妻子在线观看| 亚洲熟女乱色一区二区三区| 亲嘴扒胸摸屁股视频免费网站| 国产伦子沙发午休系列资源曝光| 伊人22222| 日日天干夜夜狠狠爱| 内射人妻无码色AV麻豆去百度搜| qvod 电影| 亚洲精品成人a| 妞干网手机免费视频| 国产中文在线观看| bdsm中国精品调教ch| 亚洲国产欧美日本大妈| 欧美自拍亚洲综合图区| 久久yy99re66| 成人在线不卡视频| 777米奇色狠狠俺去啦| 小伙无套内射老女人| 欧美高清一区二区三| 狠狠久久免费视频在线| 成人久久欧美日韩一区二区三区| 中文字幕AV在线一二三区| 无码国产伦一区二区三区视频| 毛片手机在线观看| 极品少妇高潮啪啪无码吴梦|