MISRA C是由汽车产业软件牢靠性协会(Motor Industry Software Reliability Association)提出的C言语开发规范,目的是在促进嵌入式系统的保险性及可移植性。 一开端,MISRA C主要是针对汽车产业 ,展开过程中,其他产业也逐步开端运用MISRA C,包含航空、电信、国防、医疗设备、铁路等范畴。 阅读本文,您将了解到嵌入式编码的两种关键言语,以及如何经过MISRA来改进嵌入式编码。龙智作为DevSecOps研发保险运营一体化处置计划供给商、Perforce受权协作同伴,持续关注静态测试范畴动态与展开,为您提供功用保险和规范合规抢先的静态代码剖析器,并带来最新洞察与最佳理论参考。联络我们,立刻了解C/C ++言语最佳静态代码剖析器Helix QAC如何帮您完成自动化应用MISRA规则。 嵌入式编码为装置在大型设备上的系统提供动力,好比汽车、飞机或医疗设备等,这些系统被设计来执行特定的专用功用。 每个专用功用都经过嵌入式编码完成的。这段代码必须是牢靠且无错误的,由于任何漏洞都可能对嵌入式系统的保险性构成消灭性结果。因而,应用编码规范(如MISRA)来确保代码的牢靠性和质量是十分必要的。 本篇文章将解释如何运用MISRA改进嵌入式编码。 为什么牢靠的代码关于嵌入式编码来说必不可少?嵌入式软件赋能世界上最重要的系统。它被用于:
因而,编码错误是完整不允许发作的。 这就是为什么嵌入式编程需求恪守规则的缘由——确保代码是保险、牢靠且有保障的。而这些规则可能会依据所运用的编程言语而有所不同。 嵌入式编码和系统的2种关键编程言语大多数嵌入式系统都是用C和C++编程的。 这是由于C和C++允许对硬件中止低级控制。C和C++支持嵌入式软件的复杂性。同时,运用这些言语可生成高效的代码。 另外,还由于程序员中有很大比例在运用C和C++,而且他们能够坚持最佳性能——这关于嵌入式系统来说是关键。 如何运用MISRA中止嵌入式编码许多嵌入式行业都有严厉的保险合规规范,而这些规范常常需求运用编码规范。 嵌入式软件有几种不同的C和C++编码规范可供选择。MISRA 是最值得信任的编码规范之一。MISRA规则能够确保代码契合行业规范。它辅佐您减少循环复杂性,并进步代码的质量。 下面是不同行业的开发人员如何运用MISRA进步代码质量的三个例子。 1. MISRA辅佐改善嵌入式汽车代码 汽车开发人员置信MISRA能够辅佐他们确保代码变得更好。由于MISRA是汽车行业质量和合规性的基准。 “一个客观事实是,MISRA曾经被公以为是基准,并已被整个日本汽车行业采用,掩盖从OEMS不时到芯片级的整个供给链。” ——Socionext 公司 ISO 26262合规性 汽车行业需求恪守ISO 26262这一功用保险规范。 ISO 26262对汽车保险完好性等级(ASIL) (A到d)有着严厉的请求。它倡议运用编码规范来确保契合ASIL,并强调了MISRA编码规范。 Protean Electric公司运用Helix QAC来应用MISRA C规则,这对他们恪守ISO 26262带来了很大的辅佐。此外,Helix QAC能够发现其他工具遗漏的问题。因而,Protean不用担忧呈现误报。 稳定的代码质量 Delphi汽车公司也运用Helix QAC来应用MISRA C规则,辅佐他们的开发人员采用最佳编码理论,并确保了无论个人阅历如何,一切开发人员的代码质量都能一直如一。 2.MISRA提供更好的嵌入式铁路代码 铁路系统开发人员也信任MISRA能提供更好的代码。 “MISRA是显而易见的选择。它最初由汽车行业创建,是历史最长久、最受尊崇的规范之一,并被多个保险相关市场普遍采用。” —— Viveris Technologies EN 50128合规性 铁路行业需求契合功用保险规范EN 50128。 EN 50128有五个软件保险完好性等级(SSIL),范围从SSIL0到SSIL4。为了契合一切SSIL的请求,引荐运用一个编码规范,但SSIL3和SSIL4是强迫的。 该编码规范必须:
MISRA满足这些请求,并辅佐确保您的软件质量。 Viveris Technologies运用Hlix QAC来应用MISRA规则,并满足EN 50128的合规性请求。这确保了他们的无人驾驶列车——里昂地铁是保险、牢靠的。 精确的诊断 关于Viveris来说,精确的代码诊断与合规性同样重要。 经过运用Helix QAC,他们取得了比运用其他工具更好的MISRA C规则掩盖率。真正的问题被辨认并修复。并且误报更少。 因而,他们的代码变得更好了,时间也得到了更好的应用。 3. MISRA提供更好的嵌入式航空航天代码 航空航天开发人员也信任MISRA能够提供更好的代码。 MISRA规则集来自一些世界抢先的编码专家。它适用于(并被普遍采用)任务关键型战争安关键型行业——包含航空航天。 DO-178C合规性 航空航天业需求恪守功用保险规范DO-178C。 DO-178C包含从A到E的五个保险级别。恪守这些保险级别需求一个编码规范,例如MISRA。 Selex ES公司运用MISRA C++作为他们的编码规范,并确保MISRA契合Helix QAC。 确保质量——即便在自动生成的代码中 Selex ES还运用Helix QAC、MISRA C和C++ 规则来确保其嵌入式编程的质量。他们以至在自动生成的代码上运用它。这意味着他们能够确保嵌入式软件的质量,并加快开发时间。 嵌入式编码如何完成MISRA合规性为了契合MISRA编码规范,您需求应用MISRA规则。这能够在代码检查期间手动完成,或者能够运用静态代码剖析器自动完成。 但是,并不是一切的静态代码剖析器都是相同的。关于MISRA,不同工具的精确性有差别,而Helix QAC是MISRA C和C++最精确的静态剖析器。 运用Helix QAC完成MISRA合规性的示例 观看这个藐视频,您能了解到Helix QAC是如何使编码更容易契合MISRA C:2012。 作者简介:
产品营销经理,Perforce 理查德·贝莱尔斯具有超越20年的跨行业工作阅历。在90年代和21世纪初,他在制造、国防、测试和丈量行业担任电子和软件工程职位,之后转向产品管理和产品营销。往常,他支持Perforce市场抢先的代码质量管理处置计划。理查德具有谢菲尔德大学的电子工程学士学位和英国特许营销协会 (CIM) 的市场营销专业文凭。 |