嵌入式学习小组
直播中

小镇故事多

12年用户 439经验值
擅长:模拟技术
私信 关注

请问车载嵌入式软件如何声明符合MISRA语言规范?

请问车载嵌入式软件如何声明符合MISRA语言规范?
ISO26262对于软件开发的要求是什么?

回帖(1)

张玲玲

2021-12-27 11:17:06
20200922 作者更新:感谢各位的关注,研究最后已经有了结论,研究过程和资料以及最后的结论请参考发布在百度文库上的PPThttps://wenku.baidu.com/view/06cfc5ca4a35eefdc8d376eeaeaad1f34793115c.html如需研究收集的标准,请私信获得网盘链接----需要解答如下问题方可声称符合:1.使用哪个C/C++语言版本进行项目开发?2.使用哪个静态代码检查工具进行检查代码合规性?3.检查工具应该如何部署到开发流程进行检查才算合规?4.使用哪个版本的MISRA指南才算合规?5.ISO26262对于软件开发的要求是什么?
Misra C 各版本差异对比表
静态代码检查工具选择标准


合规实施风险及应对措施

风险来源
风险描述
处置措施
Adopted code
采用的代码
指南6提及的6种Adopted code:
1.标准库
2.驱动文件
3.中间件
4.第三方库
5.自动生成的代码
6.现有代码(其它项目或者现有项目代码的过往版本)
“如果项目建立在已经具有可靠记录的代码上,那么通过重构现有代码来获得合规性的好处可能会被引入缺陷的风险所抵消。 在这种情况下,需要根据可能获得的净收益做出判断”

          •     6     种类型对应参见合规指南第      6     章节的处理措施;   
          •     所应在新产品平台或项目中导入应用     MISRA     规则,     不建议在旧平台项目上实施以符合规范   
如下为研究开始时逐步展开的针对上面的问题的思路,仅供各位思考如何合规,感谢关注。
参考国内某汽车企业的软件规范,对于嵌入式车载软件的编码静态静态检查做如下要求:

10.1.1 静态测试要求

10.9.2.1 修复代码静态扫描问题

供应商应对所负责的所有代码进行静态扫描,并修复所有发现的缺陷。无法修复的缺陷需要经过公司同意。
C/C++ 代码需要遵守MISRA C/C++规范,公司使用QAC 和Coverity 进行扫描。
其他语言和工具,需满足至少以下异常被包含:
栈溢出
访问越界
资源泄露
空指针
未初始化
数值溢出
10.9.2.2 Code Metric 要 求
Code Metric 由特定工具(QAC、Coverity、Logiscope 等)生成,公司不指定特定工具。
以下Code Metric 需要被测试并且跟踪:
圈复杂度(Cyclomatic Complexity “v(G)”), 不高于 15.
注释密度(Comment Density, COMF), 0.2 到 1
路径数量(Numbers of PATHs, PATH),1 到 80.
10.1.2 可靠性测试要求
供应商需针对软件可靠性要求和测试方案进行可靠性测试,并提供测试数据和结果。
Misra官网出版的2020版符合性指南给出了较为完整的体系流程要求:
MISRA Compliance 2020: Achieving compliance with MISRA coding guidelines, ISBN 978-906400-26-2 (PDF), February 2020.

In order for a claim of MISRA compliance to have meaning, it is necessary to establish:
Use of a disciplined software development process;
使用规范的软件开发流程;
Exactly which guidelines are being applied;
明确使用哪份指南
The effectiveness of the enforcement methods;
执行方法的有效性
The extent of any deviations from the guidelines;
偏离指导原则的程度;
The status of any software components developed outside of the project.
项目外开发的任何软件组件的状态


如第5.1节所述,在项目开始时制定了一个指导性的重新分类计划,作为详细说明如何将指南应用于项目的本机代码的意向声明。此外,还可制定额外的GRP,以适应由采用的规范组成的项目组成部分。
在项目结束时,应编制一份指南合规摘要(GCS),以记录项目总体要求的最终合规水平。GCS包括指南中每个指南的条目,并记录其MISRA类别允许的遵守程度。
指南的合规性等级如下:
1. 合规-项目中没有违反指南的情况;
2. 偏差-项目中存在违反指南的情况,这些都有偏差支持;
3. 违规-项目中存在未得到偏差支持的违反指南的行为;
4. 不合格-没有检查是否符合指南。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分