資料介紹
1 背景 —— C 的使用和問題 1.1 汽車工業(yè)中 C 的使用 MISRA-C:1998 [1] 發(fā)布于 1998 年。本文檔是它的修訂版本,用來解決與第一版本有關系的問題。在汽車工業(yè)領域的實時嵌入式應用中,C 編程語言的使用越來越體現(xiàn)出廣泛性和重要性。這在相當程度上取決于該語言固有的靈活性、可支持的范圍及其潛在的訪問廣泛硬件環(huán)境的可移植性。詳細的理由包括: z 對于許多使用中的微處理器來說,如果存在其他除了匯編語言之外的可用語言,通常就是 C。在許多情況下,其他語言根本就不可用于硬件。 z C 對高速、底層、輸入/輸出操作等提供了很好的支持,而這些特性是許多汽車嵌入式系統(tǒng)的基本特性。 z 由于應用的逐步增長的復雜性,高級語言的使用較匯編語言更為適合。 z 相對于其他一些高級語言,C 能夠產(chǎn)生較小的和較少 RAM 密集性(RAM-intensive)的代碼。 z 增長的可移植性需求。市場競爭要求在工程項目生命周期的任何階段,軟件可以通過移植到新的和/或低成本的處理器,目的是為了降低硬件成本。 z 增長的自動產(chǎn)生 C 代碼的使用要求。C 代碼需要從模型包中自動產(chǎn)生。 z 增長的對開放系統(tǒng)和主機環(huán)境(hosted enviroments)的興趣。 1.2 語言的不安全性和 C 語言沒有哪種編程語言能夠保證最終的可執(zhí)行代碼會準確地按照程序員預想的那樣執(zhí)行。任何語言都會產(chǎn)生大量的問題,下面為其做了廣泛的分類,并描述了 C 語言不安全性的例子。 1.2.1 程序員產(chǎn)生錯誤程序員產(chǎn)生的錯誤,簡單的可以是變量名字的書寫錯誤,或者更為復雜的錯誤,如對算法的誤解。編程語言可以承受這樣的錯誤。首先,語言的風格和表達能幫助或提示程序員清晰考慮其算法。其次,對于書寫錯誤,語言可以使從一個有效結(jié)構(gòu)向另一個有效(不是預想的)結(jié)構(gòu)的轉(zhuǎn)換變得輕松或困難。第三,當錯誤發(fā)生時,語言可以檢測到也可能檢測不到。首先,關于語言的風格和表達,使用 C 可以編寫出良好布局的、結(jié)構(gòu)化的和表達性強的代碼。還可以使用它編寫出不正當?shù)暮吞貏e難以理解的代碼。很明顯,后者對于安全相關的系統(tǒng)是不可接受的。其次,C 的語法特性足以使得書寫錯誤也能產(chǎn)生完全有效的代碼。例如,在“==”(邏輯比較)的地方寫成“=”(賦值)是很常見的,而且最終結(jié)果也幾乎總是有效的(但它是錯誤的);而 if 語句的結(jié)尾出現(xiàn)的多余分號能完全改變代碼邏輯。第三,C 的基本觀點是假設程序員知道他們在做什么,這意味著錯誤即使出現(xiàn)也不會被語言注意到而通過。在這方面 C 體現(xiàn)出的軟弱性正在于它的“書寫檢查”(type checking)。舉例來說,C 不會拒絕程序員在使用整數(shù)代表 true/false 值時卻在該整數(shù)中存儲了浮點值。大多數(shù)這樣的失配可以簡單地通過強制使其合適。如果 C 的表現(xiàn)不得其所(a square peg and a round), 4 它不會挑剔而會適合它們!
掃碼添加小助手
加入工程師交流群
- MISRA-C-:2004中文版 3次下載
- 在系統(tǒng)中使用C語言的指南 7次下載
- 華為C語言編程規(guī)范 63次下載
- 如何使用GCC實現(xiàn)支持MISRA-C的安全編譯器的資料概述 18次下載
- USB Type-C 規(guī)范1.2(中文版)通用串行總線Type-C線纜連接器標準 0次下載
- CodeVision C Compiler 參考中文版 0次下載
- 軟件編程規(guī)范(MISRA-C) 28次下載
- I2C協(xié)議標準(中文版) 0次下載
- GX Simulator6-C中文版仿真軟件 0次下載
- C專家編程中文版 0次下載
- 中文版AutoCAD2004應用實例與技巧 0次下載
- AutoCAD2004中文版實用教程 0次下載
- 借鑒MISRA 規(guī)范減少C 語言程序隱患
- 借鑒MISRA 規(guī)范減少C語言程序隱患
- turbo c 2.0中文版 0次下載
- 汽車網(wǎng)絡安全開發(fā)語言選型指南:C/C++/Rust/Java等主流語言對比+Perforce QAC/Klocwork工具支持 226次閱讀
- embOS的MISRA-C:2012一致性 1.3k次閱讀
- PLC編程語言和C語言的區(qū)別 6.6k次閱讀
- 使用 MISRA C++:2023? 避免基于范圍的 for 循環(huán)中的錯誤 1.6k次閱讀
- 汽車電子行業(yè)的MISRA C標準解讀 2.8k次閱讀
- C++簡史:C++是如何開始的 1.5k次閱讀
- C語言為何用/* */ 注釋? 1.5k次閱讀
- C語言代碼規(guī)范 1.9k次閱讀
- C語言是怎么面向?qū)ο?b class="flag-6" style="color: red">編程 2.6k次閱讀
- C與C++混合編程是什么 2.9k次閱讀
- C++項目常見的命名規(guī)范 2.9k次閱讀
- 使用C語言進行單片機編程的基本知識點和編程規(guī)范資料總結(jié) 5.5k次閱讀
- 嵌入式軟件開發(fā)編程規(guī)范及原則 7.4k次閱讀
- plc與C語言有什么關系_plc可以用c語言編程嗎_plc的C語言編程詳解 7.9w次閱讀
- 一張圖總結(jié)Google C++編程規(guī)范 1.6k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊
- 3.00 MB | 次下載 | 免費
- 2MDD品牌三極管BC817數(shù)據(jù)手冊
- 2.51 MB | 次下載 | 免費
- 3MDD品牌三極管D882數(shù)據(jù)手冊
- 3.49 MB | 次下載 | 免費
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊
- 3.26 MB | 次下載 | 免費
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊
- 3.09 MB | 次下載 | 免費
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊
- 2.32 MB | 次下載 | 免費
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論