您的位置:控制工程论坛网论坛 » 新能源社区 » 资深电子工程师分享:嵌入式软件可靠性设计注意的问题

vankingwh

vankingwh   |   当前状态:在线

总积分:8328  2024年可用积分:0

注册时间: 2009-03-02

最后登录时间: 2020-03-06

空间 发短消息加为好友

资深电子工程师分享:嵌入式软件可靠性设计注意的问题

vankingwh  发表于 2010/8/1 13:56:31      1700 查看 0 回复  [上一主题]  [下一主题]

手机阅读

男人征服世界,女人通过征服男人来征服世界;硬件叱咤江湖,软件通过控制硬件来统治江湖。当今世界,放眼江湖,有电子的地方就有嵌入式软件,有电子故障的地方,也就有嵌入式软件设计缺陷的影子。我们今天就把软件所容易犯的错误和规避的方法一一罗列,并给出应对之法。

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

1、软件接口

先说软件接口中容易出问题的地方和编程人员容易犯的错误。

软件接口调用一般会有数据的赋值,赋值变量的数据类型可能会存在强制的数据转换;需加以检查。如果为了防范出问题的话,可以添加对数据范围和数据类型的检查。

赋值数据的数量不对路,多了少了的都不好,会出现意外的赋值结果,不过还好,这项错误比较好检查。

软件编程中,会有对某一功能操作代码的复用,比如对某个端口的数据检查和控制,在整个程序中只会发生两次,为了图省事,可能就直接把该段代码直接插入实际程序模块中去了,这样,在源程序代码中,就出现了两段完全相同,完成相同功能,只是服务于不同模块的代码,按道理来说,这样设计其实也没啥问题,是的,你没错,但你的行为会使别人无意中犯错。就像青年男女相处,女孩子纯粹是想和男孩子充分享受温馨的气氛和心情,并不想更深入的发生什么,但女孩子邀请男生去的是她的家,在家里换上了家居的睡衣,窗户紧闭,放着的还是暧昧的音乐,被男孩子半强迫发生后,无限哀怨地说“我没想到结果会是这样的”,那怪得谁来呢?在代码方面,您的这种做法与貌似引诱男孩上钩的少女无异。

有人会说了,我这样写代码怎么就算引诱呢?原因是程序可能会升级,您这几行代码在实际应用过程中也不能保证是尽善尽美的,发现不完善的地方后,势必会修改,如果你还能想得起来,可能不会遗漏,如果修改此代码的是别的人,改了一个地方,别的地方没改,是不是还留着隐患?那如何做呢?方法不难,把这段功能单独做成一个模块即可,对此端口的读取和控制赋值均由此独立模块完成,如果数据的正确性影响大的话,还需要对端口数据的正确性进行检查和判断。嵌入式软件可靠性编程方法的四个目的是防错、判错、纠错、容错。对端口数据的判断属于判错的内容,如果数据有错的话,纠错和容错的设计方法应该不用我深入讲解了吧?

1楼 0 0 回复