我们是国际标准化组织-13485,从事医疗器械的开发.我们目前使用的是IAR认证编译器,但我们考虑切换到gcc,因为它是跨平台的,构建可以用普通的Makefile实现自动化,而这在IAR中是不可能的。
我正试图了解我们应该做什么来获得arm-none-eabi-gcc的医疗发展认证。
无论是ISO-13485,ISO-26262,ISO-62304或ISO-61508给我一个提示,我应该做什么来验证我的编译器.
我是执着于IAR,还是有其他选择?
我想这个问题也可以推广到太空/汽车。
发布于 2018-03-27 15:24:52
我在一家拥有ISO-26262认证的公司的工具链团队工作,我们最近对我们的开发套件进行了功能安全性验证。
该过程的一部分是运行一组验证测试套件,其中编译了数千个测试程序,并将结果与预期结果进行了比较。另一部分是ISO标准符合性测试。当然,这些测试都不是详尽无遗的,但确实发现了一些问题。然而,第三部分包括运行GCC自己附带的DejaGNU测试套件。
安全验证的下一个技巧是确保所有已知的问题都有文档化。功能安全并不意味着您的工具链是完美的,它只意味着已知的缺陷被清楚地记录下来,并且您已经有了一个识别和记录缺陷的过程。为了进行全面验证,您需要做的是修复或记录每一个偏离预期行为的偏差,这样就没有已知的、不合理的偏差。
验证本身就是一个完整的行业。它既昂贵又费时.
发布于 2019-10-15 08:45:34
免责声明:我是一个团队的一员,开发一个测试套件来验证C/C++编译器,并使编译器具有功能安全性。最终免责声明
这是可能的。这个过程被称为“资格认证”,而不是认证,因为它的目标是在编译器中找到任何薄弱环节,并在需要时定义解决办法。在ISO 26262中,它可以在第8部分第11节“对软件工具的使用的信心”中找到。本例中的“软件工具”是编译器。
第11.4.9.2节规定:
11.4.9.2 The validation of the software tool shall meet the following criteria:
the validation measures shall demonstrate that the software tool complies with
its specified requirements,
...
EXAMPLE
The standard for a programming language helps to define the requirements for
validating the associated compiler.解释这一点必须与ISO标准相一致。要进行验证,您需要一个基于语言标准的测试套件。
DejaGNU套件不适合于限制编译器的功能安全性。如果您的编译器版本中存在一些“众所周知的问题”,DejaGNU是有用的,但是它没有系统地根据任何国际标准化组织标准来验证编译器。它主要是一个回归测试套件,测试许多不符合ISO标准的需求。以下是这方面的一些例子:
此测试测试编译器是否生成JSON格式的诊断消息,这是ISO/IEC-9899:* C标准、ISO/IEC-14882:* C++标准或ISO-26262标准所不需要的。
例2:https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/g%2B%2B.dg/tree-ssa/pr13954.C
如果编译器没有实现任何条件常量传播优化,则此测试“失败”,但C++标准也不要求这一点,任何功能安全标准也不要求这样做。
例3:在另一边,通过DejaGNU套件并不表示符合标准,而只表示符合GNU“方言”:
对于应用程序开发中使用的选项、配置和环境,编译器进行验证也很重要。这通常被称为“用例”。ISO 26262说:
11.4.3.1
When using a software tool, it shall be ensured that its usage, its
determined environmental and functional constraints and its general
operating conditions comply with its evaluation criteria or its
qualification.正如@StephenM.Webb正确地提到的,测试是认证过程的一部分。另一部分是记录过程、测试结果和缓解(解决办法)。
在验证编译器之后,只要用例相同,就可以在任何安全关键环境中重用它。
发布于 2019-07-10 17:50:20
如果您正在使用任何特定于供应商的软件,您可以要求提供软件有异常行为(假阳性)的用例或场景,在这种情况下,gcc是开源的,需要软件的用户进行验证。
https://stackoverflow.com/questions/49516502
复制相似问题