久久精品中文_久久久精品动漫_亚洲欧洲另类_99国产成+人+综合+亚洲欧美_国产嫩草一区二区三区在线观看_蜜桃精品久久久久久久免费影院_国产精品一区二区欧美_欧美久久电影_99视频精品免费观看_亚洲一区二区三区色

24小時聯系電話:18217114652、13661815404

中文

您當前的位置:
首頁>
電子資訊>
技術專題>
單片機開發功能安全中...

技術專題

單片機開發功能安全中的編譯器


在各個領域,功能安全領域對開發人員提出了新要求。功能上安全的代碼必須包括防御性代碼,以防御各種原因引起的意外事件。例如,由于編碼錯誤或宇宙射線事件而導致的內存損壞可能導致執行根據代碼邏輯不可能的代碼路徑。高級語言,特別是CC ++,包含數量眾多的功能,這些功能的行為不是代碼所遵循的語言規范所規定的。這種不確定的行為可能導致意外的結果和潛在的災難性后果,而這在功能安全的應用程序中是無法接受的。出于這些原因,標準要求應用防御性編碼,可測試的編碼,有可能整理足夠的編碼覆蓋率,

代碼還必須實現高級別的代碼覆蓋率,在某些領域(尤其是汽車領域),設計通常需要復雜的外部診斷,校準和開發工具。出現的問題是,防御性編碼和外部數據訪問等實踐并不屬于編譯器認可的領域。例如,CC ++都沒有為內存損壞留出任何余地,因此,除非在沒有這種損壞的情況下可以訪問旨在防止內存損壞的代碼,否則在對代碼進行優化時可以將其忽略。因此,如果不優化防御性代碼,則必須在語法和語義上都可以實現。

未定義行為的實例也會引起意外。很容易建議應避免使用它們,但通常很難識別它們。如果存在它們,就不能保證已編譯的可執行代碼的行為將符合開發人員的意圖。對調試工具使用的數據的后門訪問代表了該語言不允許的另一種情況,因此可能會帶來意想不到的后果。

編譯器優化可能對所有這些領域產生重大影響,因為它們都不屬于編譯器供應商的職責范圍。優化可能會導致在與不可行相關聯時,即在存在于無法通過任何可能的輸入值進行測試和驗證的路徑上存在的情況下,顯然消除了防御性代碼。更令人震驚的是,在構建系統可執行文件時,很可能會消除在單元測試期間顯示的防御代碼。僅僅因為在單元測試期間已經實現了防御性代碼的覆蓋范圍,因此并不能保證其已存在于完整的系統中。

在功能安全這個陌生的領域,編譯器可能超出了其要素。這就是為什么目標代碼驗證(OCV)代表了對任何與故障相關的后果都有嚴重后果的系統的最佳實踐,甚至對于只有最佳實踐就足夠好的任何系統都代表了最佳實踐。

編譯前后

功能安全性,安全性和編碼標準(例如IEC 61508ISO 26262IEC 62304MISRA CC ++)提倡的驗證和確認做法非常強調顯示在基于需求的測試中使用了多少應用程序源代碼。

經驗向我們表明,如果已證明代碼可以正確執行,則現場失敗的可能性會大大降低。但是,由于這種值得稱贊的努力的重點是高級源代碼(無論使用哪種語言),所以這種方法使編譯器具有創建目標代碼的能力,這些目標代碼可以準確地再現開發人員的能力,這使人們深信不疑預期的。在最關鍵的應用程序中,該隱含假設無法成立。

不可避免的是,目標代碼的控制和數據流不會完全是源代碼的鏡像,因此證明所有源代碼路徑都可以可靠地行使并不能證明目標代碼是同一件事。 。鑒于目標代碼和匯編器之間存在11的關系,因此可以比較源代碼和匯編代碼。考慮一下圖1所示的示例,其中右邊的匯編代碼是從左邊的源代碼生成的(使用禁用了優化的TI編譯器)。


圖1:右邊的匯編代碼是從左邊的源代碼生成的,顯示了源代碼和匯編代碼之間的明顯對比

如下所述,當編譯此源代碼時,生成的匯編代碼的流程圖與源代碼的流程圖完全不同,因為CC ++編譯器遵循的規則允許它們以自己喜歡的任何方式修改代碼,前提是二進制表現為好像是一樣的。

在大多數情況下,該原則是完全可以接受的-但存在異常情況。編譯器優化基本上是數學上的變換,可應用于代碼的內部表示。如果假設不成立,這些轉換就會出錯”-例如,在代碼庫包含未定義行為的實例的情況下,這種情況經常發生。

只有航空航天業中使用的DO-178C才將重點放在開發人員意圖與可執行行為之間潛在的危險不一致的可能性上,即使如此,仍不難找到具有明顯潛能的解決方法的倡導者,以免發現那些不一致之處。但是,可以原諒此類方法,但事實是,源代碼和目標代碼之間的差異可能在任何關鍵應用程序中造成毀滅性后果。

開發人員意圖與可執行行為

盡管源代碼流和目標代碼流之間存在明顯差異,但它們并不是主要問題。編譯器通常是高度可靠的應用程序,盡管可能會像其他任何軟件一樣存在錯誤,但編譯器的實現通常會滿足其設計要求。問題在于這些設計要求并不總是反映功能安全系統的需求。

簡而言之,可以假定編譯器在功能上符合其創建者的目標。但這可能并不完全是期望或期望的結果,如下面的圖2所示,其中包括一個使用CLANG編譯器進行編譯的示例。


圖2顯示了使用CLANG編譯器進行的編譯

顯然,在匯編代碼中并未表達對錯誤功能的防御性呼吁。

僅在初始化“ state”對象時以及在“ S0”“ S1”情況下修改“ state”對象,因此編譯器可以推斷出賦予“ state”的唯一值是“ S0”“ S1”。編譯器得出結論,不需要默認值,因為假設沒有損壞,狀態將永遠不包含任何其他值-實際上,編譯器所做的正是這一假設。

編譯器還決定,由于實際對象(1323)的值未在數字上下文中使用,因此它將僅使用01的值在狀態之間切換,然后使用異或更新狀態值。二進制文件遵循好像義務,并且代碼快速緊湊。在其職權范圍內,編譯器做得很好。

此行為對使用鏈接器內存映射文件間接訪問對象的校準工具以及通過調試器直接訪問內存有影響。同樣,這些考慮因素也不屬于編譯器的職責范圍,因此在優化和/或代碼生成期間不會考慮。

現在假設代碼保持不變,但是在呈現給編譯器的代碼中其上下文發生了微小的變化,如圖3所示。


圖3:代碼保持不變,但是提供給編譯器的代碼中的上下文略有變化

現在有一個附加函數,該函數以整數形式返回狀態變量的值。這次,絕對值1323在提交給編譯器的代碼中很重要。即使這樣,這些值也不會在更新函數中進行操作(保持不變),并且僅在新的“ f”函數中可見。

簡而言之,編譯器繼續(正確地)對應該使用1323的值進行價值判斷,并且絕不會將它們應用于可能的所有情況。

如果更改了新功能以返回指向我們狀態變量的指針,則匯編代碼將發生重大變化。由于現在存在通過指針進行別名訪問的可能性,因此編譯器無法再推斷出狀態對象正在發生的情況。如下圖4所示,它不能得出1323的值不重要的結論,因此現在可以在匯編器中明確表示它們。


圖4:如果將新函數更改為返回指向我們的狀態變量的指針,則匯編代碼將發生重大變化。它不能得出結論13和23的值并不重要,因此它們現在已在匯編程序中明確表示

對源代碼單元測試的影響

現在,在虛構的單元測試工具的上下文中考慮示例。由于需要一種工具來訪問被測代碼,因此會操縱狀態變量的值,因此默認值不會被優化。這種方法在沒有與源代碼其余部分相關的上下文并且需要使所有內容都可訪問的測試工具中是完全合理的,但是,其副作用是,它可以掩蓋編譯器對防御性代碼的合法遺漏。

編譯器認識到已通過指針將任意值寫入狀態變量,并且不能再次得出1323的值不重要的結論。因此,它們現在在匯編器中明確表示。在這種情況下,不能得出結論:S0S1代表狀態變量的唯一可能值,這意味著默認路徑可能可行。如圖5所示,狀態變量的操作達到了目的,并且在匯編器中現在可以明顯看到對錯誤函數的調用。


圖5:狀態變量的操作已達到其目的,并且錯誤函數的調用現在在匯編程序中顯而易見

但是,這種操作不會出現在產品內隨附的代碼中,因此對error()的調用實際上不在整個系統中。

目標代碼驗證的重要性

為了說明目標代碼驗證如何幫助解決這個難題,請再次考慮第一個示例代碼片段,如圖6所示:


圖6:這說明了目標代碼驗證如何幫助解決錯誤提示在整個系統中的作用

通過一次調用,可以證明此C代碼實現了100%的源代碼覆蓋率,因此:

f_while40,3;

可以將代碼重新格式化為每行單個操作,并在流程圖上表示為基本塊節點的集合,每個節點都是一系列直線代碼。基本塊之間的關系在圖7中使用節點之間的有向邊表示。


圖7:使用節點之間的有向邊顯示基本塊之間的關系

編譯代碼后,結果如下所示(圖8)。流程圖的藍色元素表示調用f_while40,3尚未執行的代碼。

通過利用目標代碼與匯編代碼之間的一對一關系,此機制可以揭示目標代碼的哪些部分未被執行,從而促使測試人員設計其他測試并實現完整的匯編代碼覆蓋范圍,從而實現目標代碼驗證。


圖8:顯示了編譯代碼后的結果。流程圖的藍色元素表示調用f_while4(0,3)尚未執行的代碼

顯然,目標代碼驗證無權阻止編譯器遵循其設計規則,并無意中繞開了開發人員的最佳意圖。但這確實可以并且確實會引起任何此類失配,引起粗心的人的注意。

現在,在前面的錯誤提示示例的上下文中考慮該原理。當然,完整系統中的源代碼將與在單元測試級別上證明的源代碼相同,因此,將其進行比較不會發現任何問題。但是,將目標代碼驗證應用于完整的系統對于確保基本行為按照開發人員的意圖進行表達將具有極大的價值。

 

請輸入搜索關鍵字

確定
久久精品中文_久久久精品动漫_亚洲欧洲另类_99国产成+人+综合+亚洲欧美_国产嫩草一区二区三区在线观看_蜜桃精品久久久久久久免费影院_国产精品一区二区欧美_欧美久久电影_99视频精品免费观看_亚洲一区二区三区色
亚洲婷婷在线| 国产精品99一区二区| 国产九区一区在线| 久久精品麻豆| 亚洲美女一区| 欧美大片专区| 国产精品视频免费一区| 欧美成人久久| 99re6热在线精品视频播放速度| 亚洲在线成人| 亚洲成人中文| 欧美日韩国产在线一区| 国产毛片久久| 亚洲三级影院| 亚洲无毛电影| 欧美日韩中文| 午夜国产欧美理论在线播放| 国产欧美综合一区二区三区| 国产精品theporn| 噜噜噜久久亚洲精品国产品小说| 激情综合激情| 国产精品对白刺激久久久| 亚洲欧美久久久| 亚洲欧洲综合| 在线观看的日韩av| 欧美日韩三级电影在线| 麻豆av一区二区三区| 亚洲免费成人| 亚洲国产专区校园欧美| 国产精品porn| 激情婷婷欧美| 亚洲激情自拍| 一本色道久久综合亚洲二区三区| 黄色成人精品网站| 亚洲网站在线| 亚洲国产精品123| 亚洲第一黄网| 日韩亚洲精品在线| 国产欧美日韩一区| 国产精品一区二区在线观看| 在线综合亚洲| 亚洲专区免费| 久久综合图片| 狠狠综合久久av一区二区老牛| 欧美女人交a| 国产一区观看| 中日韩视频在线观看| 亚洲深夜av| 性一交一乱一区二区洋洋av| 久久av一区二区三区| 久久国产88| 欧美精品18| 影音欧美亚洲| 亚洲一区日韩在线| 久久久久久精| 国产精品chinese| 亚洲黄色在线| 久久久久久9| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 欧美~级网站不卡| 牛牛国产精品| 亚洲欧洲日韩综合二区| 亚洲一卡久久| 国产中文一区| 香蕉久久国产| 一区免费在线| 裸体丰满少妇做受久久99精品| 欧美久久一区| 国产精品久久久久久久免费软件 | 欧美 日韩 国产精品免费观看| 欧美在线看片| 亚洲三级观看| 欧美国产综合| 宅男噜噜噜66国产日韩在线观看| 欧美一区激情视频在线观看| 亚洲国产免费看| 久久婷婷麻豆| 国产精品久久久久久久久婷婷| 欧美一区国产一区| 国产日韩一区二区三区在线| 欧美成人dvd在线视频| 亚洲欧洲午夜| 女女同性女同一区二区三区91 | 亚洲影院一区| 激情综合中文娱乐网| 亚洲欧美国产精品桃花| 韩国一区二区三区美女美女秀| 国产精品五区| 亚洲精品欧美精品| 含羞草久久爱69一区| 久久国产精品免费一区| 99亚洲精品| 禁久久精品乱码| 欧美激情日韩| 久久久久网址| 亚洲在线观看| 国产精品裸体一区二区三区| 亚洲国产精品一区| 欧美三级不卡| 欧美日韩一区二区三| 欧美一区亚洲二区| 久久精品盗摄| 久久国产日韩欧美| 久久婷婷亚洲| 欧美在线日韩| 欧美激情第10页| 牛牛国产精品| 欧美日韩一区二区三| 欧美在线91| 久久综合九色99| 久久综合一区| 国产精品分类| 亚洲国产专区校园欧美| 亚洲日本精品国产第一区| 影音先锋在线一区| 亚洲经典在线看| 亚洲精品极品| 国产精品久久久亚洲一区| 一本久道久久综合婷婷鲸鱼| 亚洲精品九九| 亚洲欧美久久久| 久久中文精品| 亚洲午夜精品久久久久久浪潮| 狠狠爱www人成狠狠爱综合网| 国精品一区二区| 在线日韩欧美| 亚洲免费影视| 欧美激情综合色综合啪啪| 韩国一区二区三区美女美女秀| 激情视频一区二区| 国产日韩欧美一区| 久久综合图片| 红桃视频国产一区| 国产精品久久亚洲7777| 久久久国产精品一区二区三区| 欧美成人综合| 99视频在线精品国自产拍免费观看| 国产精品亚洲欧美| 欧美日韩亚洲三区| 国产精品久久亚洲7777| 久久中文在线| 夜夜爽99久久国产综合精品女不卡| 久久99伊人| 亚洲精品一区二| 你懂的一区二区| 一本一本a久久| 欧美成人午夜| 国产欧美日韩综合一区在线观看 | 久久精品系列| 亚洲一级高清| 久久久久久一区| 中国成人在线视频| 亚洲图片在线| 欧美国产91| 亚洲欧美久久久| 精品999网站| 久久尤物视频| 亚洲综合日本| 国产日韩欧美一区二区| 欧美午夜影院| 久久经典综合| 国产精品久久久久毛片大屁完整版| 欧美一区视频| 男女精品网站| 国产精品日韩二区| 亚洲大胆视频| 国内精品久久久久久久97牛牛| 欧美在线综合| 亚洲永久免费精品| 中国成人在线视频| 亚洲精品国产精品国自产观看| 欧美在线一二三区| 久久久久久精| 欧美1区免费| 欧美日韩高清免费| 久久在线精品| 国产伦精品一区二区三区高清版| 国产精品久久7| 欧美不卡三区| 欧美成人日韩| 可以看av的网站久久看| 亚洲综合另类| 亚洲免费网站| 久久精品人人| 久久综合中文| 欧美精品网站| 欧美视频在线观看| 国模大胆一区二区三区| 欧美网站在线| 狠狠色狠狠色综合日日tαg| 欧美日韩日本国产亚洲在线| 欧美日韩影院| 红桃视频亚洲| 影音先锋亚洲电影| 99pao成人国产永久免费视频| 亚洲欧洲日夜超级视频| 国产日韩一区二区三区在线| 亚洲女优在线| 欧美二区不卡| 亚洲成人自拍视频| 国产精品久久久对白| 免费不卡亚洲欧美| 欧美在线黄色| 亚洲精华国产欧美| 亚洲一区二区三区在线观看视频| 麻豆9191精品国产| 国产一区二区无遮挡| 日韩视频在线播放| 欧美一区二区在线| 激情综合网址| 午夜亚洲性色视频| 国精品一区二区三区| 一本色道精品久久一区二区三区| 国产精品一区二区三区四区五区| 久久国产精品亚洲va麻豆| 欧美成人69av| 亚洲精品一区二区三| 亚洲免费综合| 国产中文一区二区| 先锋影音久久| 亚洲伦理精品| 国产精品久久| 久久精品国产综合精品| 在线观看亚洲| 女同一区二区| 国产精品毛片在线| 韩日视频一区| 久久久久高清| 中文一区在线| 一区精品久久| 欧美a级一区| 国产精品一区在线观看| 激情综合中文娱乐网| 久久九九精品| 国产精品五区| 亚洲国产精品第一区二区| 久久青草久久| 亚洲一区日本| 亚洲精品在线免费| 亚洲手机在线| 国产综合18久久久久久| 久久综合网络一区二区| 国产一区二区你懂的| 影音先锋日韩资源| 国产精品v亚洲精品v日韩精品 | 日韩视频不卡| 亚洲视频久久| 欧美视频1区| 欧美 日韩 国产在线| 亚洲综合国产| 国产农村妇女精品一二区| 日韩一级不卡| 在线亚洲自拍| 国产三区精品| 国产精品久久九九| 国产精品久久久久毛片大屁完整版| 亚洲黄色一区二区三区| 一区在线视频观看| 精品动漫av| 亚洲青色在线| 一区二区动漫 | 亚洲第一伊人| 亚洲精品三级| 国产精品区二区三区日本| 亚洲免费播放| 国产精品久久国产愉拍| 国产精品一级| 蜜桃精品久久久久久久免费影院| 校园激情久久| 欧美一区国产一区| 国产在线日韩| 亚洲看片网站| 久久大逼视频| 欧美久久影院| 亚洲国产精品一区二区第四页av| 亚洲日韩视频| 国产乱码精品一区二区三区不卡| 久久国产精品久久久久久电车 | 午夜宅男久久久| 欧美 日韩 国产 一区| 欧美日韩国产高清视频| 精品99视频| 国产精品日韩欧美一区| 久久久综合网| 樱桃成人精品视频在线播放| 亚洲少妇一区| 欧美+亚洲+精品+三区| 亚洲一级网站| 亚洲欧美精品| 国产在线日韩| 国产精品毛片在线| 欧美日韩另类综合| 国产精品午夜av在线| 午夜久久影院| 在线综合视频| 欧美日韩一区二区视频在线观看| 亚洲美女毛片| 午夜国产精品视频| 亚洲精选在线| 欧美精品尤物在线| 国产精品一区二区欧美| 国产精品分类| 久久xxxx| 一区二区三区四区五区视频 | 久久午夜影视| 国产一区久久| 亚洲免费久久| 久久久久久色| 精品成人久久| 久久国产直播| 亚洲久久在线| 欧美一区二区在线| 亚洲看片一区| 亚洲欧美伊人| 国产区二精品视| 欧美性久久久| 国产嫩草一区二区三区在线观看| 国产精品theporn| 香蕉久久夜色精品| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲综合激情| 精品动漫3d一区二区三区免费版 | 亚洲精选成人| 午夜久久资源| 亚洲一区三区在线观看| 在线观看一区| 国模大胆一区二区三区| 久久综合导航| 久久精品一区二区国产| 国产精品乱码| 一本不卡影院| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲黄色av| 黄色另类av| 国产一区二区中文| 欧美日本不卡| 欧美日本韩国一区二区三区| 久久久久国产精品一区二区| 国产伦精品一区| 亚洲一区一卡| 久久精品卡一| 欧美一区成人| 欧美性色综合| 亚洲国产欧洲综合997久久| 亚洲第一伊人| 国产亚洲在线| 另类亚洲自拍| 欧美日韩理论| 在线精品一区二区| 亚洲精品在线二区| 国产精品永久| 欧美a级片一区| 亚洲亚洲精品三区日韩精品在线视频| 狠狠噜噜久久| 最新成人av网站| 国产精品亚洲综合| 久久激情一区| 欧美区高清在线| 亚洲国产一区在线| 在线综合视频| 麻豆成人av| 黄色亚洲免费| 亚洲欧美bt| 国模大胆一区二区三区| 亚洲高清网站| 销魂美女一区二区三区视频在线| 久久这里有精品15一区二区三区| 国产精品v欧美精品v日韩精品 | 亚洲欧美网站| 欧美视频亚洲视频| 国产一区二区高清不卡| 欧美一区二区三区四区在线观看地址| 欧美日本一区| 亚洲麻豆av| 老**午夜毛片一区二区三区 | 欧美视频网站| 国产精品美女久久久| 久久中文字幕一区二区三区| 国内精品国语自产拍在线观看| 在线亚洲自拍| 欧美私人啪啪vps| 99视频国产精品免费观看| 麻豆成人精品| 国产情侣久久| 黄色另类av| 欧美在线亚洲| 亚洲综合好骚| 日韩视频一区二区三区在线播放免费观看| 免费在线成人av| 99精品视频免费观看| 欧美日韩精品免费看 | 亚洲第一黄色| 欧美91大片| 免费在线国产精品| 正在播放亚洲| 亚洲麻豆视频| 亚洲电影在线| 国产精品成人观看视频免费| 美女精品网站| 模特精品在线|