多联机软件开发中常见错误及MISRA C的应用
多联机软件开发中常见错误及 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一...
相关推荐
-
2024年党建工作要点工作计划5篇供参考
2023-12-16 999+ -
2025年专题生活会对照带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”个人对照检查发言材料4110字文稿
2024-12-21 999+ -
2025年医保局局长、科技局领导干部专题“四个带头”方面对照检查材料2篇例文(附:反面典型案例剖析情况)
2025-02-09 458 -
2025年国有企业党委书记、市总工会党组书记民主生活会“四个带头”方面对照个人检查发言材料2篇文(附:典型案例、上年度整改+个人情况)
2025-02-09 507 -
2025年市委组织部部长、教育局党委书记生活会“四个带头”个人对照检查发言材料2篇文(典型案例+个人事项)
2025-02-09 627 -
2025年市财政局党组书记、局长、市检察院党组领导班子对照“四个带头”方面生活会个人对照检视发言材料2篇文(含以案为鉴反思、以案促改促治方面)
2025-02-09 509 -
市检察院党组、市财政局领导班子2025年生活会对照“四个带头”方面检视发言材料2份文【含以违纪行为为典型案例剖析】
2025-02-09 461 -
2025年市财政局领导对照“四个带头”生活会检视发言材料2篇例文【含以违纪行为为典型案例剖析】
2025-02-09 586 -
单位领导班子2025年聚焦“四个带头”生活会对照检查材料2篇文(含:典型案例剖析反思、落实意识形态责任制)
2025-02-09 758 -
2025年镇党委副书记、市科学技术局领导班子生活会对照“四个带头”检视材料2篇文【含违纪行为典型案例分析】
2025-02-09 257
作者:闻远设计
分类:其它行业资料
价格:免费
属性:2 页
大小:13.33KB
格式:DOCX
时间:2024-03-10

