电路医生 | 嵌入式软件设计处处是坑,确保可靠性有这些绝招

2017-03-27 16:57:30 来源:EEFOCUS
标签:

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


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

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


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

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


软件编程中,会有对某一功能操作代码的复用,比如对某个端口的数据检查和控制,在整个程序中只会发生两次,为了图省事,可能就直接把该段代码直接插入实际程序模块中去了,这样,在源程序代码中,就出现了两段完全相同,完成相同功能,只是服务于不同模块的代码,按道理来说,这样设计其实也没啥问题,是的,你没错,但你的行为会使别人无意中犯错。就像青年男女相处,女孩子纯粹是想和男孩子充分享受温馨的气氛和心情,并不想更深入的发生什么,但女孩子邀请男生去的是她的家,在家里换上了家居的睡衣,窗户紧闭,放着的还是暧昧的音乐,然后无限哀怨地说“我没想到结果会是这样的”,那怪得谁来呢?在代码方面,您的这种做法与貌似引诱男孩上钩的少女无异。有人会说了,我这样写代码怎么就算引诱呢?原因是程序可能会升级,您这几行代码在实际应用过程中也不能保证是尽善尽美的,发现不完善的地方后,势必会修改,如果你还能想得起来,可能不会遗漏,如果修改此代码的是别的人,改了一个地方,别的地方没改,是不是还留着隐患?那如何做呢?方法不难,把这段功能单独做成一个模块即可,对此端口的读取和控制赋值均由此独立模块完成,如果数据的正确性影响大的话,还需要对端口数据的正确性进行检查和判断。嵌入式软件可靠性编程方法的四个目的是防错、判错、纠错、容错。对端口数据的判断属于判错的内容,如果数据有错的话,纠错和容错的设计方法应该不用我深入讲解了吧?


2、软硬件接

硬件如男人,对外的执行都靠它来实现,一旦出现问题,执行后的后果就不可控了,周总理说过“外交无小事”。但如何注意呢?
 

对读进来的硬件接口的数据要判断其真伪;
对输出的数据的执行效果要检测;
对输出的数据的可能后果要进行预防性设计,数据输出的过程,我们从设计上要做一个分析,分析的思路是一般容易局限在稳态过程,忽视了过渡过程。举例说明,比如我们控制一个支路的供电,从软件控制来说,直接给继电器一个启动信号,让开状态的触点闭合就可以了,非“关”即“开”,是受控继电器的两个稳态状态,但事实上,在从开到闭合的过程中,支路供电的电压并不是一个简单0V—24V(24V为示例而已)的跳变状态,而是一个抖动,有冲击信号的过程,这种情况在硬件上的防护是必不可少的,但在软件上也不是可以事不关己、高高挂起的。
 

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

作者简介
武晔卿
武晔卿

建有微信公众号“武晔卿”,关注领域包括电子可靠性设计与测试技术以及EMC干扰抑制滤波器组件,就职于瑞迪航科(北京)技术有限公司,咨询技术和产品可联系:237681844@qq.com。总结:我的快乐人生可以复制。

继续阅读
毕业生嵌入式学习方法大汇总
毕业生嵌入式学习方法大汇总

最近经常有用人单位给我打来电话,问我这有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的软件开发人员,我回答说,现在每年毕业的大学生那么多,还招不到合适的软件开发人员吗?他跟我说,毕业大学生虽然多,但大部分都能力不够,不能达到他们的工作的要求。

感测系统是工业物联网重要环节,如何保证安全?
感测系统是工业物联网重要环节,如何保证安全?

物联网系统攻击事件屡屡登上媒体头条,不断揭示网络、边缘节点、以与门道器存在的安全漏洞。 嵌入式感测系统是工业物联网的重要环节,一旦联网安全风险便大幅提升,但节点间的沟通有其必要,因此,节点安全的维护便格外重要。

一文带你走进十大可穿戴技术与功能

总体来说,Gartner预计可穿戴设备在未来二至五年将快速普及,从2015年的2.32亿台将跃升至2020年的4.77亿台,并带来617亿美元的盈利机会。2017年至2018年十大可穿戴技术与功能分列如下。

7个易操作技巧让你搞定嵌入式开发

成为一个正式的嵌入式开发工程师。它是一个艰辛的过程,需要开发人员维护和管理系统的每个比特和字节。从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种。今天给大家介绍7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。

华虹有啥特殊工艺,能走在中国晶圆代工前端?

国泰君安分析师认为,受益于8寸晶圆供需持续紧张形势,华虹半导体有望保持中短期强劲增长势头。IoT、汽车电子、智能卡等下游应用猛增势头,同时晶圆尺寸转移导致8寸线产能吃紧

更多资讯
欧盟开除史上最高罚单,谷歌安卓系统依旧垄断

欧盟委员会作出正式裁决,对谷歌实施总额43亿欧元,折合50亿美元的罚款,该金额也创下了欧盟史上开出的单一罚单的最高纪录。

DRAM产业持续乐观,南亚科欲打入服务器存储器市场

存储器大厂南亚科2018年上半展现亮丽成长动能,并看好第3季供需持续稳定,下半年市场需求将稳定成长,南亚科总经理李培瑛表示,DRAM产业市况稳定,每年市场需求成长约15%~20%,但不代表短期内不会出现季节性变化,而美中贸易、国际专利诉讼或中兴事件等尚未看到短期冲击,但长期仍须观察是否过度发展或扩张,导致影响经济景气与终端消费市场。

嵌入式Linux工程师的成长经历,想做大牛应该具备如下素质

从嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。下面是嵌入式Linux开发工程师的成长过程,希望对大家能有所启发。

基于MATLAB/SIMULINK的心电信号仿真方法
基于MATLAB/SIMULINK的心电信号仿真方法

心电信号主要频率范围为0.05"100Hz,幅度约为0"4mV,信号十分微弱。由于心电信号中通常混杂有其它生物信号,加之体外以500Hz工频为主的电磁场干扰,使得心电噪声背景较强,测量条件比较复杂,为医学研究、救治和教学带来一定困难。

合肥长鑫DRAM正式投片,国产存储春天要来了?

知情人士告诉记者,国产存储三大势力之一的合肥长鑫正式投片,产品规格为8Gb LPDDR4,这是国产DRAM产业的一个里程碑,加上早前宣布在3D NAND Flash取得进展的长江存储,国内企业在国际主流存储器上都取得了重大突破,为推动存储国产化掀开了重要一页。

Moore8直播课堂