www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > strongerHuang
[導讀]C語言的標準有很多,之前給大家分享過相關的內容,比如:C89、C99標準,ANSI C、ISO C、Standard C標準等。


編排 | strongerHuang

微信公眾號 | 嵌入式專欄

C語言的標準有很多,之前給大家分享過相關的內容,比如:C89、C99標準,ANSI C、ISO C、Standard C標準等。

可能你在一些地方還看到過:MISRA C:2012,MISRA C++:2008,那你知道這是什么嗎?

今天分享的就是另外一種C語言標準:MISRA C.

嵌入式專欄

1

MISRA C

MISRA C是由汽車產業(yè)軟件可靠性協(xié)會(MISRA)提出的C語言開發(fā)標準。

其目的是在增進嵌入式系統(tǒng)的安全性及可移植性,針對C++語言也有對應的標準MISRA C++。

MISRA C一開始主要是針對汽車產業(yè),不過其他產業(yè)也逐漸開始使用MISRA C:包括航天、電信、國防、醫(yī)療設備、鐵路等領域中都已有廠商使用MISRA C。

MISRA C的第一版《Guidelines for the use of the C language in vehicle based software》是在1998年發(fā)行,一般稱為MISRA-C:1998.。MISRA-C:1998有127項規(guī)則,規(guī)則從1號編號到127號,其中有93項是強制要求,其余的34項是推薦使用的規(guī)則。

在2004年時發(fā)行了第二版的MISRA C的第一版《Guidelines for the use of the C language in critical systems》(或稱作MISRA-C:2004),其中有許多重要建議事項的變更,其規(guī)則也重新編號。MISRA-C:2004有141項規(guī)則,其中121項是強制要求,其余的20項是推薦使用的規(guī)則。規(guī)則分為21類,從“開發(fā)環(huán)境”到“運行期錯誤”。

2012年發(fā)布第三版,為當前最新有效的C語言規(guī)范版本,稱為MISRA C:2012。
MISRA C 版本歷史

MISRA版本

發(fā)布年份

C語言版本

指令 數(shù)量

規(guī)則 數(shù)量

指南 總數(shù)

1998

1998

C90

不詳

127

不詳

2004

2004

C90

不詳

142

不詳

2012

2012

C99

16

143

159

2012 AMD-1

2016

C99

17

156

173

2012 AMD-2

2020

C11

17

158

175


嵌入式專欄

2

MISRA C:2012(修訂版2)

當前最新有效的C語言規(guī)范版本為MISRA C:2012,下面來講講其修訂版2。

MISRA C工作組發(fā)布了對MISRA C:2012的修訂版,以支持稱為“C11”的C標準,并正式批準為ISO/IEC 9899:2011。C11已得到廣泛使用,對于一直推遲遷移到C11的項目和組織,這是一個廣受歡迎的公告。C11還取代了C99(標準ISO/IEC 9899:1999),并已被C18(標準ISO/IEC 9899:2018)取代。除了更新的C語言準則之外,MISRA C工作組還發(fā)布了MISRA 2020合規(guī)性指南。

MISRA C:2012(修訂版2)現(xiàn)在引用ISO/IEC 9899:2011,并包含C語言更新,為可能使用但受限制的功能和受禁止的功能提供指導,除非其存在您的團隊軟件審查過程已批準的偏差。在制定修訂版2的過程中,還獲得了利用先前的補充內容糾正任何已知問題的機會。MISRA工作組的任務不止是提供指導,以防止發(fā)生不可預測的行為,減少或消除編碼缺陷并在嵌入式軟件系統(tǒng)的環(huán)境中促進代碼安全、安全性、可移植性和可靠性。

新的MISRA C:2012標準:

添加了適用于C11中新功能的新MISRA規(guī)則的一個示例,即規(guī)則1.4,“不得使用緊急語言功能。” 如果使用設施和_Thread_local存儲類說明符,則可能是這種情況的一個實例。該規(guī)則將使用違反類別類型“必需”標記C11語言結構。
C11標準化了可能在多核平臺上運行的多線程程序的語義,以及使用原子變量的輕量級線程間通信。使用線程本地的全局內存,其中已標識出未定義和未指定行為的實例,包括未滿足預期的已定義行為。
向前邁進并符合MISRA C:2012(修訂版2),如果我使用_Thread_local,不僅需要進行偏離,而且還需要采取保證措施來解決危害安全性的行為。


_Generic關鍵字是另一個不應使用的C11語言新功能,它可能表現(xiàn)出不良行為,并且一些人發(fā)現(xiàn)C11標準在某些情況下含糊不清。_Generic運算符是一種宏重載。它用于幫助程序員將任何宏都用作通用宏,以使其更高效。下面的代碼行顯示_Generic關鍵字如何用于聲明不同類型的數(shù)據類型的任何宏,以及如何將其聲明為不同方法的泛型。以下面的VOL宏示例為例;VOL(x)根據x的類型轉換為VOLc(x),VOLl(x),VOL(x)或VOLf(x)。

#define VOL(x) _Generic((x), char: VOLc, long double: VOLl, default: VOL, float: VOLf)(x) 

安全編碼 安全漏洞的一個常見原因是使用了中定義的標準庫函數(shù)系統(tǒng)。MISRA C:2012(修訂版2)添加了新的規(guī)則21.21,該規(guī)則規(guī)定不得使用標準庫函數(shù)系統(tǒng)。系統(tǒng)調用是一個阻塞函數(shù),用于執(zhí)行子進程和命令,等待子進程終止并返回其退出值。認識到原型為“int系統(tǒng)(const char *command);”不需要是單個命令,而可以是一個管道或一系列管道。(例如,系統(tǒng)("pngtopnm \"My Picture.png\" | pnmtoxwd > fout.xwd && xwud fout.xwd");)由于可變命令是由用戶提供的數(shù)據構成的,因此攻擊者可能會發(fā)現(xiàn) 引用并在父級上下文中執(zhí)行任意命令。一些建議的措施可能是利用預定的命令字符串或一起繞開系統(tǒng)調用,而使用spawn代替。
合規(guī)報告 對于聲稱符合MISRA的要求,有一些書面指南,這些指南在過去的幾年中不斷完善和修訂。本文檔的最新版本是MISRA Compliance 2020,它于2月發(fā)布。從較高的角度來看,適當報告了使用良好的軟件開發(fā)過程的使用情況,準確地應用了哪些指南以及執(zhí)行方法的有效性的列表,包括偏差的程度或程度,以及為了聲稱MISRA符合要求,必須考慮到項目外開發(fā)的所有軟件組件的狀態(tài)。Parasoft DTP提供了專用的報告擴展,完全符合MISRA Compliance標準的要求。DTP將指導您完成構建準則執(zhí)行計劃(GEP)和準則重新分類計劃(GRP)的過程,并自動生成準則合規(guī)摘要(GCS)以及已批準偏差的完整列表。自動化報告消除了繁瑣的手工工作,使組織能夠遵循MISRA編碼準則現(xiàn)在強制執(zhí)行的合規(guī)性流程。
最后
還有其他新的MISRA C:2012(修訂版2)規(guī)則,例如_Noreturn函數(shù)說明符、_Atomic類型說明符、_Alignas對齊說明符和_Alignof運算符,非常引人注目。使用這些類型說明符將觸發(fā)類別“必需的違規(guī)”,并且將不被使用,從而解決了C11覆蓋和安全漏洞的問題。此外,還進行了許多修訂版2更新和文本替換,以澄清和改進標準。同樣,再次提醒您非常重要的一點是,與該標準一起,用戶現(xiàn)在可以遵循MISRA Compliance 2020指南的強制性和補充性法規(guī)遵循版本。感謝MISRA工作組繼續(xù)做出色的工作,并為軟件界做出了巨大貢獻。



免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉