当前位置:网站首页>如何使用MISRA改进嵌入式编程
如何使用MISRA改进嵌入式编程
2022-07-29 13:09:00 【Trinitytec】
嵌入式编程主要用于驱动安装在大型设备(如汽车、飞机或医疗设备)旨在执行特定的专用功能的系统。
每个专用功能都是通过嵌入式编程实现的。这些代码必须是可靠且无误的,因为任何漏洞都可能对嵌入式系统的安全造成毁灭性的后果。因此,应用像MISRA这样的编码规范来确保代码的可靠性和高质量是非常必要的。
在这里,我们将阐释如何使用MISRA改进嵌入式编程。
本文将包含如下几个部分:
- 为什么可靠的代码对嵌入式编程至关重要
- 2种适用于嵌入式编程和系统的关键编程语言
- 如何使用MISRA改进嵌入式编程
- 如何使用MISRA实现嵌入式编程合规
为什么可靠的代码对嵌入式编程至关重要
世界上最重要的系统都使用嵌入式软件来实现功能。
嵌入式软件用于:
- 人们每天驾驶的汽车。
- 维持生命的心脏监护器(和其他医疗设备)。
- 环球飞行的飞机。
编码错误不容妥协。
这就是嵌入式编程需要遵循指南的原因。这确保了代码是安全、可靠的。但是,这些指南可能会因所使用的编程语言而有所不同。
2种适用于嵌入式编程和系统的关键编程语言
大多数嵌入式系统是使用C和C++语言编写程序的。
这是因为C和C++支持对硬件进行低级别控制。C和C++支持嵌入式软件的复杂性。同时,使用C和C++语言可以生成高效的代码。
另外,从事C/C++研发的程序员人数众多。他们能够维护最佳的性能——这是嵌入式系统的关键。
如何使用MISRA改进嵌入式编程
许多嵌入式行业都有严格的安全合规标准。这些标准通常需要使用编码规范。
嵌入式软件有几种可用于C和C++的不同的编码规范。但MISRA是最值得信赖的编码规范之一。MISRA规则可以确保代码符合行业标准,帮助您减少圈复杂度,并提高代码的质量。
下面是不同行业的开发人员如何使用MISRA提高代码质量的三个示例。
1. 使用MISRA提供更好的嵌入式汽车代码
汽车开发人员信赖MISRA以开发出更好的代码。这是因为MISRA是汽车行业的质量与合规基准。
“MISRA被公认为事实上的基准,并已被日本整个汽车行业采用,横跨从主机厂(OEM)到芯片的整个供应链。”— Socionext
ISO 26262合规
汽车行业需要遵循ISO 26262功能安全标准。
ISO 26262有严格的汽车安全完整性等级(Automotive Safety Integrity Levels, 简称ASIL)要求——包括四个级别,即 A-D。ISO 26262建议使用编码规范来确保符合ASIL,并重点强调了MISRA编码规范。
Protean Electric使用Helix QAC应用MISRA C规则。这有助于他们遵循ISO 26262。另外,Helix QAC还能发现其他工具忽略的问题。所以,Protean不必担心漏报。
一致的代码质量
Delphi Automotive也使用Helix QAC应用MISRA C规则。这有助于开发人员采用最佳编码实践,确保所有开发人员的代码质量保持一致性——而不管个人的经验如何。
2. 使用MISRA提供更好的嵌入式轨道交通代码
轨道交通系统开发人员也相信MISRA能提供更好的代码。
“MISRA显然是最合适的选择。MISRA最初由汽车行业创立,是创立时间最长、最著名的规则之一,而且已在多个安全相关市场得到了广泛的采用。”— Viveris Technologies
EN 50128合规
轨道交通行业需要遵循EN 50128功能安全标准。
EN 50128软件安全完整性等级(Software Safety Integrity Levels, 简称SSIL)包括五个级别,即SSIL0-SSIL4。若要符合所有的SSIL,建议使用编码规范——但要符合SSIL3和SSIL4,则必须使用编码规范。
编码规范必须能够:
- 防止使用未定义或未指明的行为。
- 防止程序员犯常见的错误。
- 限制某些架构的使用。
- 消除潜在的歧义。
- 限制库的使用。
MISRA能满足这些需求,并帮助确保软件的质量。
Viveris Technologies使用Helix QAC应用MISRA规则并满足EN 50128的合规要求。这确保了其无人驾驶列车——Lyon Metro——是安全、可靠的。
准确的诊断
对于Viveris来说,准确的代码诊断与合规一样重要。
通过使用Helix QAC,Viveris获得了比使用其他工具更好的MISRA C规则覆盖率。真正的问题得以确定并修复了,误报也更少了。
因此,Viveris的代码质量更好,开发效率更高。
3. 使用MISRA开发更好的嵌入式航空航天代码
航空航天开发人员也信赖MISRA以开发更好的代码。
MISRA规则集是由一批全球顶级编码专家制定的,适用于(并广泛应用于)任务关键型和安全关键型行业,包括航空航天。
DO-178C合规
航空航天行业需要遵循DO-178C功能安全标准。
DO-178C包括五个安全级别——A-E。符合这些安全级别需要遵循一定的编码规范,比如MISRA。
Selex ES使用MISRA C++作为编码规范,并使用Helix QAC来确保符合MSIRA。
质量—甚至在自动生成的代码中
Selex ES还使用Helix QAC和MISRA C、C++规则,以确保其嵌入式编程的质量。Selex ES甚至在自动生成的代码中使用Helix QAC和MISRA C、C++规则。这意味着他们可以确保嵌入式软件的质量并加快开发的速度。
如何使用MISRA实现嵌入式编程合规
为了符合MISRA编码规范,您需要应用MISRA规则。这可以在代码审查期间人工完成,也可以使用静态代码分析工具自动完成。
然而,静态代码分析工具却不尽相同。对于MISRA,一些工具比其他工具更准确。而Helix QAC是适用于MISRA C和C++的最准确的静态代码分析工具。
若您想深入了解适用于MISRA的Helix QAC,立刻注册申请免费试用吧。
“原创内容,转载请标明出处”
边栏推荐
猜你喜欢
随机推荐
2022 IDEA (学生邮箱认证)安装使用教程以及基础配置教程
来自 Qt 官网的呐喊
微信小程序的登录
码蹄集 tourist
mysql 存储过程详解
开放式耳机推荐哪款最好最实用、最好的开放式耳机推荐
JS_ deleting the invalid data in the array undefined '0' null false NaN
BGP联邦综合实验
BGP简单实验
线程池拒绝策略详解
用支持LaTex的Markdown语句编辑一个数学公式
十种实现延迟任务的方案
How Navicat Connects to MySQL
"Industrial flaw detection depth study method" the latest 2022 research were reviewed
A recent paper summarizes
开关电源-PWM外设简介及MCC配置
轻松学Pytorch-Pytorch可视化
Nacos hierarchical storage model - the cluster configuration and NacosRule load balance
Leetcode67. 二进制求和
企业如何走出固定资产管理的困境?








![[Numpy] np.where](/img/a7/928fd5d7b8916e47603bd5587a53c7.png)