资料介绍
1 背景 —— C 的使用和问题 1.1 汽车工业中 C 的使用 MISRA-C:1998 [1] 发布于 1998 年。本文档是它的修订版本,用来解决与第一版本有关系的问题。在汽车工业领域的实时嵌入式应用中,C 编程语言的使用越来越体现出广泛性和重要性。这在相当程度上取决于该语言固有的灵活性、可支持的范围及其潜在的访问广泛硬件环境的可移植性。详细的理由包括: z 对于许多使用中的微处理器来说,如果存在其他除了汇编语言之外的可用语言,通常就是 C。在许多情况下,其他语言根本就不可用于硬件。 z C 对高速、底层、输入/输出操作等提供了很好的支持,而这些特性是许多汽车嵌入式系统的基本特性。 z 由于应用的逐步增长的复杂性,高级语言的使用较汇编语言更为适合。 z 相对于其他一些高级语言,C 能够产生较小的和较少 RAM 密集性(RAM-intensive)的代码。 z 增长的可移植性需求。市场竞争要求在工程项目生命周期的任何阶段,软件可以通过移植到新的和/或低成本的处理器,目的是为了降低硬件成本。 z 增长的自动产生 C 代码的使用要求。C 代码需要从模型包中自动产生。 z 增长的对开放系统和主机环境(hosted enviroments)的兴趣。 1.2 语言的不安全性和 C 语言没有哪种编程语言能够保证最终的可执行代码会准确地按照程序员预想的那样执行。任何语言都会产生大量的问题,下面为其做了广泛的分类,并描述了 C 语言不安全性的例子。 1.2.1 程序员产生错误程序员产生的错误,简单的可以是变量名字的书写错误,或者更为复杂的错误,如对算法的误解。编程语言可以承受这样的错误。首先,语言的风格和表达能帮助或提示程序员清晰考虑其算法。其次,对于书写错误,语言可以使从一个有效结构向另一个有效(不是预想的)结构的转换变得轻松或困难。第三,当错误发生时,语言可以检测到也可能检测不到。首先,关于语言的风格和表达,使用 C 可以编写出良好布局的、结构化的和表达性强的代码。还可以使用它编写出不正当的和特别难以理解的代码。很明显,后者对于安全相关的系统是不可接受的。其次,C 的语法特性足以使得书写错误也能产生完全有效的代码。例如,在“==”(逻辑比较)的地方写成“=”(赋值)是很常见的,而且最终结果也几乎总是有效的(但它是错误的);而 if 语句的结尾出现的多余分号能完全改变代码逻辑。第三,C 的基本观点是假设程序员知道他们在做什么,这意味着错误即使出现也不会被语言注意到而通过。在这方面 C 体现出的软弱性正在于它的“书写检查”(type checking)。举例来说,C 不会拒绝程序员在使用整数代表 true/false 值时却在该整数中存储了浮点值。大多数这样的失配可以简单地通过强制使其合适。如果 C 的表现不得其所(a square peg and a round), 4 它不会挑剔而会适合它们!
- MISRA-C-:2004中文版 1次下载
- 在系统中使用C语言的指南 7次下载
- 华为C语言编程规范 61次下载
- 如何使用GCC实现支持MISRA-C的安全编译器的资料概述 16次下载
- USB Type-C 规范1.2(中文版)通用串行总线Type-C线缆连接器标准 0次下载
- 软件编程规范(MISRA-C) 26次下载
- I2C协议标准(中文版) 0次下载
- C程序设计语言(中文版) 0次下载
- GX Simulator6-C中文版仿真软件 0次下载
- C专家编程中文版 0次下载
- 中文版AutoCAD2004应用实例与技巧 0次下载
- AutoCAD2004中文版实用教程 0次下载
- 借鉴MISRA 规范减少C 语言程序隐患
- 借鉴MISRA 规范减少C语言程序隐患
- turbo c 2.0中文版 0次下载
- embOS的MISRA-C:2012一致性 243次阅读
- PLC编程语言和C语言的区别 1469次阅读
- 使用 MISRA C++:2023® 避免基于范围的 for 循环中的错误 482次阅读
- 汽车电子行业的MISRA C标准解读 862次阅读
- C++简史:C++是如何开始的 415次阅读
- C语言为何用/* */ 注释? 493次阅读
- C语言代码规范 837次阅读
- C语言是怎么面向对象编程 1484次阅读
- C与C++混合编程是什么 1300次阅读
- C++项目常见的命名规范 1969次阅读
- 使用C语言进行单片机编程的基本知识点和编程规范资料总结 4900次阅读
- 嵌入式软件开发编程规范及原则 6535次阅读
- 标准C函数库的用法 5036次阅读
- plc与C语言有什么关系_plc可以用c语言编程吗_plc的C语言编程详解 7.2w次阅读
- 一张图总结Google C++编程规范 1424次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多