嵌入式软件可靠性设计注意事项

嵌入式软件可靠性设计注意事项

ID:22183084

大小:31.00 KB

页数:9页

时间:2018-10-27

嵌入式软件可靠性设计注意事项_第1页
嵌入式软件可靠性设计注意事项_第2页
嵌入式软件可靠性设计注意事项_第3页
嵌入式软件可靠性设计注意事项_第4页
嵌入式软件可靠性设计注意事项_第5页
资源描述:

《嵌入式软件可靠性设计注意事项》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、嵌入式软件可靠性设计注意事项嵌入式软件可靠性设计注意事项嵌入式软件可靠性设计注意事项嵌入式软件可靠性设计注意事项嵌入式软件可靠性设计注意事项嵌入式软件可靠性设计注意事项嵌入式软件可靠性设计注意事项  嵌入式软件的最大特点是以控制为主,软硬结合的较多,功能性的操作较多,模块相互间调用的较多,外部工作环境复杂容易受到干扰或干扰别的设备,且执行错误的后果不仅仅是数据错误而是有可能导致不可估量的灾难,所以总结起来,嵌入式软件可靠性设计需注意的问题有四个方面:    1、软件接口  先说软件接口中容易出问题的

2、地方和编程人员容易犯的错误。  软件接口调用一般会有数据的赋值,赋值变量的数据类型可能会存在强制的数据转换;需加以检查。如果为了防范出问题的话,可以添加对数据范围和数据类型的检查。  赋值数据的数量不对路,多了少了的都不好,会出现意外的赋值结果,不过还好,这项错误比较好检查。  软件编程中,会有对某一功能操作代码的复用,比如对某个端口的数据检查和控制,在整个程序中只会发生两次,为了图省事,可能就直接把该段代码直接插入实际程序模块中去了,这样,在源程序代码中,就出现了两段完全相同,完成相同功能,只是服

3、务于不同模块的代码,按道理来说,这样设计其实也没啥问题,是的,你没错,但你的行为会使别人无意中犯错。就像青年男女相处,女孩子纯粹是想和男孩子充分享受温馨的气氛和心情,并不想更深入的发生什么,但女孩子邀请男生去的是她的家,在家里换上了家居的睡衣,窗户紧闭,放着的还是暧昧的音乐,然后无限哀怨地说“我没想到结果会是这样的”,那怪得谁来呢?在代码方面,您的这种做法与貌似引诱男孩上钩的少女无异。有人会说了,我这样写代码怎么就算引诱呢?原因是程序可能会升级,您这几行代码在实际应用过程中也不能保证是尽善尽美的,发

4、现不完善的地方后,势必会修改,如果你还能想得起来,可能不会遗漏,如果修改此代码的是别的人,改了一个地方,别的地方没改,是不是还留着隐患?那如何做呢?方法不难,把这段功能单独做成一个模块即可,对此端口的读取和控制赋值均由此独立模块完成,如果数据的正确性影响大的话,还需要对端口数据的正确性进行检查和判断。嵌入式软件可靠性编程方法的四个目的是防错、判错、纠错、容错。对端口数据的判断属于判错的内容,如果数据有错的话,纠错和容错的设计方法应该不用我深入讲解了吧?    2、软硬件接  硬件如男人,对外的执行都

5、靠它来实现,一旦出现问题,执行后的后果就不可控了,周总理说过“外交无小事”。但如何注意呢?  对读进来的硬件接口的数据要判断其真伪;  对输出的数据的执行效果要检测;  对输出的数据的可能后果要进行预防性设计,数据输出的过程,我们从设计上要做一个分析,分析的思路是一般容易局限在稳态过程,忽视了过渡过程。举例说明,比如我们控制一个支路的供电,从软件控制来说,直接给继电器一个启动信号,让开状态的触点闭合就可以了,非“关”即“开”,是受控继电器的两个稳态状态,但事实上,在从开到闭合的过程中,支路供电的电压

6、并不是一个简单0V—24V(24V为示例而已)的跳变状态,而是一个抖动,有冲击信号的过程,这种情况在硬件上的防护是必不可少的,但在软件上也不是可以事不关己、高高挂起的。  另外在逻辑上,宜将容易被干扰和容易产生的干扰控制动作从时序上控制好,予以分开隔离。比如,控制继电器的过程是容易产生抖动尖峰脉冲而干扰数据总线和控制信号总线的,这时候从控制上,不宜同时实施数据的发送和接收工作,不宜作出其他的控制动作,惹不起咱躲得起,躲过这一阵干扰的时候总可以了吧?    3、软件代码  软件的可靠性是随着时间的推移

7、,可靠性逐渐增加的,这一点区别于电子可靠性、机械可靠性。电子可靠性服从指数分布,在整个生命周期内,其失效率为一个常数;机械可靠性因为磨损、腐蚀、运动等因素的存在,随时间推移可靠度会下降。因此也就有了软件可靠性设计的一个特定规律和注意事项。  既然需要通过时间推移,通过不断改进,软件可靠性得到提升。那么软件的可维护性就是一个大问题了。这也是为什么软件工程管理方面特别关注软件文档、注释的原因了。但做这些要求的人只是人云亦云,并不理解如此做法的真正动机。至于注释如何去做、变量如何命名、软件配置管理如何操作

8、,这里面既有很常规的方法,也有一些我们司空见惯然而是错误的做法。信手举上几个值得注意的细节供参考。  变量定义时宜将变量类型的变量名程中体现于其中;如AD_result_int、Cal_result_float等。这样为的好检查,防止数据类型的强制转换或强制赋值时出现数据类型的错误;  注释要充分;  代码的布局风格宜统一,便于阅读查找;  不可出现非受控的default流程,所有数值和变量,不论是调用函数时赋予的、读取接口读进来的、还是中间变量计算出来的,在应用前都

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。