資料介紹
1 背景 —— C 的使用和問(wèn)題 1.1 汽車工業(yè)中 C 的使用 MISRA-C:1998 [1] 發(fā)布于 1998 年。本文檔是它的修訂版本,用來(lái)解決與第一版本有關(guān)系的問(wèn)題。在汽車工業(yè)領(lǐng)域的實(shí)時(shí)嵌入式應(yīng)用中,C 編程語(yǔ)言的使用越來(lái)越體現(xiàn)出廣泛性和重要性。這在相當(dāng)程度上取決于該語(yǔ)言固有的靈活性、可支持的范圍及其潛在的訪問(wèn)廣泛硬件環(huán)境的可移植性。詳細(xì)的理由包括: z 對(duì)于許多使用中的微處理器來(lái)說(shuō),如果存在其他除了匯編語(yǔ)言之外的可用語(yǔ)言,通常就是 C。在許多情況下,其他語(yǔ)言根本就不可用于硬件。 z C 對(duì)高速、底層、輸入/輸出操作等提供了很好的支持,而這些特性是許多汽車嵌入式系統(tǒng)的基本特性。 z 由于應(yīng)用的逐步增長(zhǎng)的復(fù)雜性,高級(jí)語(yǔ)言的使用較匯編語(yǔ)言更為適合。 z 相對(duì)于其他一些高級(jí)語(yǔ)言,C 能夠產(chǎn)生較小的和較少 RAM 密集性(RAM-intensive)的代碼。 z 增長(zhǎng)的可移植性需求。市場(chǎng)競(jìng)爭(zhēng)要求在工程項(xiàng)目生命周期的任何階段,軟件可以通過(guò)移植到新的和/或低成本的處理器,目的是為了降低硬件成本。 z 增長(zhǎng)的自動(dòng)產(chǎn)生 C 代碼的使用要求。C 代碼需要從模型包中自動(dòng)產(chǎn)生。 z 增長(zhǎng)的對(duì)開(kāi)放系統(tǒng)和主機(jī)環(huán)境(hosted enviroments)的興趣。 1.2 語(yǔ)言的不安全性和 C 語(yǔ)言沒(méi)有哪種編程語(yǔ)言能夠保證最終的可執(zhí)行代碼會(huì)準(zhǔn)確地按照程序員預(yù)想的那樣執(zhí)行。任何語(yǔ)言都會(huì)產(chǎn)生大量的問(wèn)題,下面為其做了廣泛的分類,并描述了 C 語(yǔ)言不安全性的例子。 1.2.1 程序員產(chǎn)生錯(cuò)誤程序員產(chǎn)生的錯(cuò)誤,簡(jiǎn)單的可以是變量名字的書(shū)寫(xiě)錯(cuò)誤,或者更為復(fù)雜的錯(cuò)誤,如對(duì)算法的誤解。編程語(yǔ)言可以承受這樣的錯(cuò)誤。首先,語(yǔ)言的風(fēng)格和表達(dá)能幫助或提示程序員清晰考慮其算法。其次,對(duì)于書(shū)寫(xiě)錯(cuò)誤,語(yǔ)言可以使從一個(gè)有效結(jié)構(gòu)向另一個(gè)有效(不是預(yù)想的)結(jié)構(gòu)的轉(zhuǎn)換變得輕松或困難。第三,當(dāng)錯(cuò)誤發(fā)生時(shí),語(yǔ)言可以檢測(cè)到也可能檢測(cè)不到。首先,關(guān)于語(yǔ)言的風(fēng)格和表達(dá),使用 C 可以編寫(xiě)出良好布局的、結(jié)構(gòu)化的和表達(dá)性強(qiáng)的代碼。還可以使用它編寫(xiě)出不正當(dāng)?shù)暮吞貏e難以理解的代碼。很明顯,后者對(duì)于安全相關(guān)的系統(tǒng)是不可接受的。其次,C 的語(yǔ)法特性足以使得書(shū)寫(xiě)錯(cuò)誤也能產(chǎn)生完全有效的代碼。例如,在“==”(邏輯比較)的地方寫(xiě)成“=”(賦值)是很常見(jiàn)的,而且最終結(jié)果也幾乎總是有效的(但它是錯(cuò)誤的);而 if 語(yǔ)句的結(jié)尾出現(xiàn)的多余分號(hào)能完全改變代碼邏輯。第三,C 的基本觀點(diǎn)是假設(shè)程序員知道他們?cè)谧鍪裁?,這意味著錯(cuò)誤即使出現(xiàn)也不會(huì)被語(yǔ)言注意到而通過(guò)。在這方面 C 體現(xiàn)出的軟弱性正在于它的“書(shū)寫(xiě)檢查”(type checking)。舉例來(lái)說(shuō),C 不會(huì)拒絕程序員在使用整數(shù)代表 true/false 值時(shí)卻在該整數(shù)中存儲(chǔ)了浮點(diǎn)值。大多數(shù)這樣的失配可以簡(jiǎn)單地通過(guò)強(qiáng)制使其合適。如果 C 的表現(xiàn)不得其所(a square peg and a round), 4 它不會(huì)挑剔而會(huì)適合它們!
- MISRA-C-:2004中文版 1次下載
- 在系統(tǒng)中使用C語(yǔ)言的指南 7次下載
- 華為C語(yǔ)言編程規(guī)范 61次下載
- 如何使用GCC實(shí)現(xiàn)支持MISRA-C的安全編譯器的資料概述 16次下載
- USB Type-C 規(guī)范1.2(中文版)通用串行總線Type-C線纜連接器標(biāo)準(zhǔn) 0次下載
- CodeVision C Compiler 參考中文版 0次下載
- 軟件編程規(guī)范(MISRA-C) 26次下載
- I2C協(xié)議標(biāo)準(zhǔn)(中文版) 0次下載
- GX Simulator6-C中文版仿真軟件 0次下載
- C專家編程中文版 0次下載
- 中文版AutoCAD2004應(yīng)用實(shí)例與技巧 0次下載
- AutoCAD2004中文版實(shí)用教程 0次下載
- 借鑒MISRA 規(guī)范減少C 語(yǔ)言程序隱患
- 借鑒MISRA 規(guī)范減少C語(yǔ)言程序隱患
- turbo c 2.0中文版 0次下載
- embOS的MISRA-C:2012一致性 547次閱讀
- PLC編程語(yǔ)言和C語(yǔ)言的區(qū)別 3082次閱讀
- 使用 MISRA C++:2023? 避免基于范圍的 for 循環(huán)中的錯(cuò)誤 836次閱讀
- 汽車電子行業(yè)的MISRA C標(biāo)準(zhǔn)解讀 1265次閱讀
- C++簡(jiǎn)史:C++是如何開(kāi)始的 637次閱讀
- C語(yǔ)言為何用/* */ 注釋? 696次閱讀
- C語(yǔ)言代碼規(guī)范 1015次閱讀
- C語(yǔ)言是怎么面向?qū)ο?b class="flag-6" style="color: red">編程 1708次閱讀
- C與C++混合編程是什么 1744次閱讀
- C++項(xiàng)目常見(jiàn)的命名規(guī)范 2116次閱讀
- 使用C語(yǔ)言進(jìn)行單片機(jī)編程的基本知識(shí)點(diǎn)和編程規(guī)范資料總結(jié) 5049次閱讀
- 嵌入式軟件開(kāi)發(fā)編程規(guī)范及原則 6761次閱讀
- 標(biāo)準(zhǔn)C函數(shù)庫(kù)的用法 5254次閱讀
- plc與C語(yǔ)言有什么關(guān)系_plc可以用c語(yǔ)言編程嗎_plc的C語(yǔ)言編程詳解 7.4w次閱讀
- 一張圖總結(jié)Google C++編程規(guī)范 1472次閱讀
下載排行
本周
- 1PIC12F629/675 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.38 MB | 36次下載 | 5 積分
- 2PIC16F716 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.35 MB | 18次下載 | 5 積分
- 3STC15系列常用寄存器匯總免費(fèi)下載
- 1.60 MB | 7次下載 | 5 積分
- 4AN158 GD32VW553 Wi-Fi開(kāi)發(fā)指南
- 1.51MB | 2次下載 | 免費(fèi)
- 5模擬電路仿真實(shí)現(xiàn)
- 2.94MB | 2次下載 | 免費(fèi)
- 6AN148 GD32VW553射頻硬件開(kāi)發(fā)指南
- 2.07MB | 1次下載 | 免費(fèi)
- 7PZT驅(qū)動(dòng)開(kāi)關(guān)電路
- 0.09 MB | 1次下載 | 免費(fèi)
- 8電子線路板及仿真實(shí)現(xiàn)
- 1.54MB | 1次下載 | 免費(fèi)
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費(fèi)
- 2免費(fèi)開(kāi)源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 139次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
- 0.10 MB | 133次下載 | 免費(fèi)
- 4PIC12F629/675 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.38 MB | 36次下載 | 5 積分
- 5美的電磁爐維修手冊(cè)大全
- 1.56 MB | 24次下載 | 5 積分
- 6如何正確測(cè)試電源的紋波
- 0.36 MB | 19次下載 | 免費(fèi)
- 7PIC16F716 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.35 MB | 18次下載 | 5 積分
- 8萬(wàn)用表UT58A原理圖
- 0.09 MB | 9次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論
查看更多