多联机软件开发中常见错误及MISRA C的应用

3.0 闻远设计 2024-03-10 61 4 13.33KB 2 页 免费
侵权投诉
多联机软件开发中常见错误及 MISRA C 的应用
商用空调产品功能复杂,运行环境恶劣,尤其对于商用多联机来说,其控制软件可是说是电器
类产品中最复杂的软件之一。 商用多联机控制软件不仅包含整个空调各个运行系统的控制逻辑
而且还包含复杂的多机通讯,同时相同功能的代码需要在不同处理器之间移植。 因此,怎样提
升多联机软件的可靠性、可移植性一直是多联机软件工程师研究的问题。
1 MISRA C 编程规范
MISRA C 是有汽车产业软件可靠性协会 (Motor IndustrySoftware Reliability Association
MISRA ) 提 出的 C 语 言开发标准。 其目的是在增进嵌入式系统的安全性以及可移植性
.MISRA C 一开始主要是针对汽车产业, 不过随着对 MISRA C 认可度的提高,其他行业也开
始逐渐使用 MISRA C. 目前大家熟悉的版本是 MISRA C : 2004 版。
MISRA C:2004 包含 141 条规则,其中 121 条强制规则,20 条建议规则。141 条规则分为 21
类别,分别为:编程环境相关类规则;语言扩展类规则;文档类规则;字符集规则;标识符规
则;类型规则;常量规则;声明与定义类规则;初始化规则;数值类型转换规则;指针类型转
换规则;表达式规则;控制语句表达式规则;控制流规则;Switch 语句规则;函数类规则;指
针和数组类规则;结构与联合体规则;预处理指令规则;标准库规则;运行时错误规则。
2 多联机软件开发中常见错误以及 MISRA C 的应用
多联机软件开发中常用的错误举例:
2.1 条件遗漏
开发过程中,程序员经常只对符合条件的处理,而遗漏了一些潜在的可能性,即在 if …else
if… 语句中经常忘记增加一个 else 语句,来处理剩余条件。 MISRA C 的第 14.10 规则要求所有
if…else if… 结构都必须以 else 句子结束,保证所有可能的条件都得到处理。
2.2 表达式的计算顺序
A = b+++c; 语句, 程序员可能会依据标准 C 编译器的表达式计算顺序来得到预期的值,但
因处理器的 C 编译器和标准 C 编译器并不一定相同,且不同编译器所编译的结果也不尽相
同。 因此这类的表达式可能有不确定的结果,同时也增加了代码移植的难度, MISRA C
12.2 规则, 要求表达式在任何情况下求值顺序必须保持一致。 编程过程中尽可能的通过括号
将表达式的计算顺序定好,保证唯一的计算顺序。
2.3 数组越界
多联机外机程序中经常定义一个数组用于存储所有内机的状态信息,通讯接程序据接
的内机地址来定对应内机在数组中的位置,如 if InterDoorData[Address])语句中,Ad-
dress 这个地址变量在特殊情况下可能出数组定义的最大个数,因此数组访有可能越
界。 MISRA C 21.1 规则,要求或动态分,对数组越界的错误排查,可
以及时发数组访问越界的情况。
2.4 代码移植过程中出错
相同功能的代码如通讯功能的代码、内机自动寻址功能的代码,在不同品的处理器之间移
植,经常出难以发的错误。 如量类型定义、局部变量和全局变重名导致的一些问题。
MISRA C 的一些规则能的保证代码的可移植性,如局部变量不能和全局变重名
用于文件范内的量应定义为 Static 型, 这样避免与其他文件中同的全局变冲突
部变量在使用之前一定要值;移位操作符不应在有符号使用。
摘要:

多联机软件开发中常见错误及MISRAC的应用商用空调产品功能复杂,运行环境恶劣,尤其对于商用多联机来说,其控制软件可是说是电器类产品中最复杂的软件之一。商用多联机控制软件不仅包含整个空调各个运行系统的控制逻辑而且还包含复杂的多机通讯,同时相同功能的代码需要在不同处理器之间移植。因此,怎样提升多联机软件的可靠性、可移植性一直是多联机软件工程师研究的问题。1MISRAC编程规范MISRAC是有汽车产业软件可靠性协会(MotorIndustrySoftwareReliabilityAssociation)(MISRA)提出的C语言开发标准。其目的是在增进嵌入式系统的安全性以及可移植性.MISRAC一...

展开>> 收起<<
多联机软件开发中常见错误及MISRA C的应用.docx

共2页,预览1页

还剩页未读, 继续阅读

相关推荐

作者:闻远设计 分类:其它行业资料 价格:免费 属性:2 页 大小:13.33KB 格式:DOCX 时间:2024-03-10

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 2
客服
关注