今日头条
随着使用技术使人们的生活更轻松、更安全和更健康的趋势不断发展,安全和关键任务系统的嵌入式软件开发面临着越来越大的挑战。这改变了被认为是安全关键的地方和内容。现在有可穿戴设备不仅可以促进健身,还可以监测关键器官和其他健康问题。而且,现在提供驾驶员辅助系统来帮助人们停车和避免碰撞的汽车现在使用数百万个 MCU 来处理数十亿行代码。显然,随着对安全至关重要的系统的使用成为我们日常基础设施的一部分,它提高了应用程序提供商的赌注,因为这些系统的安全性和有效性的重要部分依赖于软件。
虽然没有软件开发过程或认证标准可以保证系统无风险,但关注和预防典型的软件错误和应用程序弱点可以显着减少错误并帮助开发人员更好地了解潜在风险。当然,由于软件负责 50-70% 的汽车召回,现在是时候进行更严格的检查了。
那么软件哪里出错了呢?通常在一开始,在代码开发中。需要认证或测试和验证过程的行业首先要确定存在额外风险的编码区域。他们使用编码指南来帮助开发人员简化代码,使其更易于阅读、维护和验证。他们使用编程规则来组织代码并使软件开发实践保持一致。仅这些步骤就可以大大确保安全关键系统的质量、安全性和可靠性,并有助于促进认证和测试过程。
帮助许多行业实现更安全的应用程序开发的编程标准之一是汽车行业软件可靠性协会,通常称为 MISRA。尽管该组织的最初任务是制定一套编程指南,以提高汽车安全关键系统的安全性、可靠性、易于维护性和便携性,但该编程标准现在已被许多行业领域广泛采用。第一个 MISRA C 指南于 1998 年发布,重点关注安全关键嵌入式系统中流行且真正占主导地位的 C 编程语言。MISRA C 已发展到其第三代指南 (MISRA-C:2012),并已被公认为提高所有软件的可靠性、可维护性和 ROI 的“最佳实践”,而不仅仅是安全关键。
为了帮助提高 MISRA 的适用性,最新的 MISRA C:2012 提供了强制性、必需和建议性规则以及定义和综合解释,确定了每个规则的目的。因此,公司可以更好地理解和分级使用规则,了解哪些规则对他们最有意义,以及如何将它们作为开发团队的标准应用。例如,一家公司可能会选择允许单个工程师跳过咨询,而必要的规则可能需要团队负责人或经理审查来覆盖其使用——这取决于项目的范围。MISRA C:2012 合规报告记录了所有这些决定。
由于对安全、可靠开发的新重视,公司现在要求他们的开发工具符合 MISRA。现在可以购买符合 MISRA 的基本构建块,例如集成开发环境 (IDE)、实时操作系统 (RTOS) 和中间件。
使用 MISRA 并不能保证无风险的开发或无错误的代码,但 MISRA 将程序员限制在解决关键风险领域的 C 语言子集。一些开发人员可能更喜欢使用的功能(例如宏)带有对其风险的解释。当然,虽然有些程序员反对这样的指导方针,但为了增加安全性,是时候编写更可靠、更安全、更易于阅读、维护和验证的代码了。
有多种方法可以符合 MISRA。其中包括来自 Express Logic 的 ThreadX——一种最近被批准为符合 MISRA 的免版税 RTOS。RTOS 具有占用空间小、内核小至 2 KB、快速确定性响应、启动时间为 300 个周期、上下文切换时间少于 100 个周期和信号量少于 30 个周期的特点。
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !