随想录(从DO-178C和ARINC653想到的)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

 

    DO-178C是一个软件开发流程标准,类似于汽车行业的ISO26262,或者是一般软件公司的CMMI5。ARINC653是一个航空电子软件标准,多用来指航空操作系统,可以看成是rtos的航空版本。这两个概念,本来没什么关系,正好自己在芯片行业、汽车行业和航空行业都待过,所以这方面可以拿来说一说。

 

1、关键安全软件的开发,是一个系统的开发,不是几个模块做好了,整个系统就安全了。

 

2、安全软件必须拆解,哪些是芯片负责,哪些是fpga负责,哪些是rtos负责的,哪些是应用开发状态机负责的,这里面必须分好。

 

3、做好了ARINC653接口的适配os,只是万里长征第一步,系统级别的安全才是真正的安全。

 

4、rtos不等于ucos,ARINC653也不是把ucos2、ucos3增加一下TLB、关闭cache、修改scheduler,这就达标了。必须认真设计、开发和测试os,不然后患无穷。

 

5、interrupt task -》priority task -》 idle task,任务的优先级只有这么一个唯一的顺序,越安全就越需要简单。越复杂,就必须要越往后移动。

 

6、文档是所有流程得到充分保证的基石。

 

7、除了代码之外,开发过程中的自研工具也是质量保证的重要环节,这些工具不应该仅仅是流程工作,而应该更多的是代码静态分析工具。

 

8、没有条件时,用不同的platform、不同的编译器、不同的SOC、不同的开发板分析ARINC 653 OS。有开发条件,务必自己上compiler、fpga、optimizer来分析os。

 

9、软件质量的根本保证来自于顶层架构设计,没有顶层的设计,软件质量基本靠个人发挥。

 

10、不要迷信形式化验证,做好了状态机fsm+双余度开发,可以解决绝大多数安全问题和异常情况。

 

注1:

  DO-178C其实是一份不错的流程文档,适合多读、精度,ARINC653也是一样。但是不能教条的读,纸上谈兵的读、机械式的理解。按照目前的情况,大家对软件的认识普遍是不认可其价值的,只有搭配了硬件或者出了问题回过头反思时,才能有一点些许的改进。

 

注2:

  另外一个,魔鬼就在细节处。要是说流程、说ucos、说arinc653,很多时候大家都能说上两句。但是落实到实现,仿真最长执行时间、计算最大堆栈使用、如何保证硬实时性、如何兼容之前的posix接口并保持实时性、如何定量分析rtos的实时性和安全性,很多人就答不上来了。

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页