发布信息

嵌入式系统软件的可靠性设计问题及解决办法!

作者:软荐小编      2023-10-20 22:04:49     198

嵌入式系统诞生四十多年来,随着技术的发展和需求的变化,嵌入式系统软件在嵌入式系统中的地位越来越重要。 现在,甚至有些嵌入式系统硬件是一模一样的,但是软件不同,这是不同的产品(比如交换机和路由器)。

嵌入式系统的应用领域千差万别,对嵌入式系统的要求和侧重点也不同(例如工业控制强调可靠性),但基本要求是嵌入式系统功能强大、性能稳定、运行可靠。 但这三点并不是互补的,而是相互矛盾的。

嵌入式系统的功能、稳定性、可靠性应该与嵌入式系统的硬件和软件有关。 本文仅讨论嵌入式系统软件的可靠性设计问题,因此假设嵌入式系统的硬件稳定可靠。 虽然有些应用可以在不可靠的硬件上通过软件设计获得可靠的产品(比如U盘、NAND FLASH是一种不可靠的存储介质,但是通过软件设计可以获得可靠的存储设备,尤其是硬盘),但这超出了本文的范围。

01

可靠性与稳定性的关系

法则一:越简单的东西,就越容易可靠地做出来

锤子相比,机械表已经足够复杂了。 如果把锤子和机械表都从 10 层楼高处掉落到普通混凝土地板上,哪一个更容易损坏?

当然,如果你花很多钱,比如使用最好的材料,增加或减少减震系统,机械表甚至可以用锤子敲碎,而不会损坏手表。 不相信? 有很多飞行员从数万米高空坠落而没有受伤(当然他们有降落伞)。

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

从上面的解释我们可以看到,让简单的东西变得高可靠很容易,但是让复杂的东西变得高可靠的成本就高很多。 这是一般原则,也适用于嵌入式软件。 如果是这样的话,人们为什么要制造复杂的东西呢? 这就涉及到第二定律了。

法则2:事物越复杂,就越容易使其变得稳定。

记得刚进大学的时候有军训,最后一部分就是打靶。 前一天下午,这个班级被命令清理用于打靶的半自动步枪。 具体型号我记不清了,但肯定是建国初期生产的。 教练告诉我们擦拭前要注意的事项。 其中一句是这样的:“一个人清洗一把枪时,不要把零件搞混了,否则就无法安装。” 也就是说,两支相同型号、相同零件的枪是不能互换的! 正是因为建国初期的枪械是用简单的工具制造的,零件的尺寸和质量不稳定,而且枪械的某些零件之间的公差要求很小,所以我们不得不使用手动组装可以装配在一起的零件的方法。 成成品。 这样,由于产品零部件的不稳定,导致同型号产品的零部件相互不兼容。 看看现在的一些枪支,不同型号的枪支60%的零部件可以互换是很正常的。 这是由于设计原因,也是由于制造工具足够先进,能够生产出尺寸和质量稳定的零件。

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

对于嵌入式系统软件来说也是如此。 我们写的越多,代码就会变得越大、越复杂。 很大程度上不就是为了让软件在各种情况下都能稳定运行吗?

法则 3:每个系统都有最低的复杂性

普通的锤子必须有锤柄和锤体。 锤柄大概是一个圆柱体,锤体也是一样。 看起来最简单的锤子就是由两个气缸组成的。 作者无法想象更简单的锤子。 很容易使锤子变得更复杂。 方法有很多,比如在锤子上铸龙、铸凤等。

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

也就是说,在功能和稳定性相同的前提下,每个系统都有最小的复杂度。 锤子的作用是敲击物体。 这个功能只需要一个脑垂体,但是很容易伤到人的手(稳定性不好),所以需要一个锤柄。 嵌入式系统软件也是如此。

综上所述

从以上三个定律可以看出,系统的稳定性和可靠性之间存在一定的矛盾:提高稳定性最简单的方法就是降低系统的复杂度嵌入式系统软件教程,而这往往又降低了系统的稳定性。 同样,提高系统的稳定性也容易降低系统的可靠性。 要实现高稳定性和可靠性,就需要相对较高的价格。

02

功能、可靠性、稳定性之间的关系

由上可见,系统的功能、可靠性、稳定性并不是孤立的,而是相互联系、相互制约的。 下面进行详细分析。

定律1:功能的增加取决于复杂性的增加。

众所周知,普通的锤子只能锤击东西。 现在需要增加拔钉子的功能。 锤体的一端需要改变形状。 制造起来显然更加困难(复杂性增加)。 锤子的功能增加了,但也更难使用,更容易损坏(锤子向后握,用拔钉子的一侧锤东西……)。

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

随着复杂性的增加,保证相同可靠性的成本也会更高。 显然,功能性和可靠性也是矛盾的。

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

法则2:功能的增加可能会导致单个功能复杂性的降低

您可以找到目前市面上最好的拍照手机和普通数码相机来比较它们的拍照效果。 可以肯定的是,数码相机可以提供更好的效果。 原因在于,由于种种限制,拍照手机无法使其集成的数码相机功能像普通数码相机一样复杂(镜头不够精密,闪光灯只能使用LED或低级霓虹灯,感光元件只能使用LED或低级霓虹灯)。只是简单一点),当然稳定性就差一些。 对于嵌入式软件来说也是如此。 受存储空间大小、人机界面等限制,嵌入式软件往往只能简化功能代码将它们集成在一起。

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

复杂度降低了,保证同样稳定性的成本会更高。 因此,保证同样的稳定性甚至是不可能的任务。 显然,功能和稳定性也是一对矛盾。

综上所述

从以上两个定律可以看出,系统的功能与系统的稳定性、可靠性之间存在一定的矛盾。 想要功能齐全、稳定可靠,就需要相对较高的价格。

03

提高嵌入式系统软件可靠性和稳定性的有效方法

优化系统框架设计可以提高系统的稳定性和可靠性

一个系统在一定的稳定性和可靠性的基础上,具有理论上的最小复杂度,但在实践中是不可能达到这个最小复杂度的。 在实际工作中,往往就像在锤子上雕刻一样,增加了复杂性。 不但不能提高系统的稳定性,如果做得不好,还会降低系统的稳定性。

系统复杂度的增加使得维持原有的可靠性变得更加困难,这无助于提高系统的可靠性。

如果想以较小的成本提高系统的稳定性和可靠性,更好的办法是降低系统不必要的复杂度。 系统框架对系统复杂性影响最大。 一个好的系统框架可以抑制系统复杂性不必要的增加,并在系统功能发生变化时尽量减少对现有功能模块的影响。

这样,提高系统稳定性和可靠性的成本就更低,从而间接提高了系统的稳定性和可靠性。

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

稳定性和可靠性源自严格的测试

人们永远无法完全理解世界嵌入式系统软件教程,因此在设计系统时不可能考虑到所有情况。 因此,稳定性和可靠性不能用言语来表达,也不能简单地通过分析系统设计来确定。

提高稳定性的第二步来自于严格的测试,包括早期的设计师测试和中后期的第三方测试。 如果在测试过程中发现问题,必须修改设计并重新测试。 重复此操作,直到在一定时间内没有检测到问题为止。

稳定性和可靠性有待时间的考验

产品经过严格的内部测试和小批量试产并提供给友好客户(外部测试)后,最终大批量推出。 但即便如此,世界级的大企业也会出现大规模的产品召回。 为什么?

前面说过,人永远无法完全理解世界,所以无论测试多么严格,也不可能模拟实际使用中的所有情况。 这样,当用户使用的环境和方法与测试的环境和方法不一致时,产品潜在的不稳定或不可靠点就会暴露出来。 如果这些不稳定或不可靠的点是致命的,则必须召回该产品。 如果不是致命的,则需要改进设计,以提高系统的稳定性和可靠性。 反复。 如果系统长期大量使用而没有改进,则说明系统稳定可靠。

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

因为专业所以稳定可靠

在古代,如果找专业的铁匠打锤子,产量和质量稳定可靠吗? 显然是铁匠。 为什么? 因为你是业余的,而铁匠是专业的。

为什么说专业就意味着稳定、可靠?

最重要的原因是他们在这个领域花了很多钱来提高系统的稳定性和可靠性(否则他们不会专业)。 他们不再与非专业人士站在同一起跑线上。 非专业人士希望在短期内超越专业人士。 不可能。

其次,他们对该领域的情况非常了解,他们开发的测试方法与实际情况高度吻合,增加了稳定性和可靠性。

第三,他们可以使用经过时间考验的系统作为新系统的基础,甚至直接使用旧系统。 不可控复杂度的增加有限,能够以较小的成本保证系统的稳定性和可靠性。

结论:专业分工合作是提高嵌入式系统软件最快、最经济的方法

随着技术的发展和社会的进步,用户现在要求嵌入式系统功能强大、性能稳定、运行可靠。 一个强大而稳定的系统具有相对较高的复杂性,但并不是所有的复杂性都会对系统的可靠性产生重大的负面影响。 经过时间考验且可靠的模块对系统可靠性几乎没有负面影响。

然而,一个强大的系统往往涉及很多方面的知识,其中很多知识往往超出了一个人的专业知识范围。 自己开发可靠的成本太高,甚至超过了收益。 这时候就找专业的合作伙伴提供稳定可靠的模块集成到自己的系统中,只做自己专业范围内的部分。 这样,每个部分的复杂度对可靠性的负面影响较小,同时整体复杂度也易于控制,产品可以快速推出。

嵌入式系统软件更适合这种模式。 这是因为软件是很容易被复制的东西,复制后的可靠性、稳定性和复杂性不会改变。 专业公司的软件模块一般已经被多个公司在完全不同的环境中使用过。 它们的功能、稳定性、可靠性都经过严格测试,不会对自身系统产生重大负面影响。 多个企业还可以分担软件研发成本,直接使用成本更低。 同时,专业公司非常了解自己的领域,可以协助用户开发,进一步降低用户成本。

因此,专业分工与合作是改进嵌入式系统软件最快、最经济的方法。 (本文作者陈明基,版权归广州致远电子有限公司所有)

看完文章我回过神来,承诺的好处在哪里?

论福利!

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

毕竟,您只能从一篇文章中学到这么多。 本书还有更多案例供您参考!

如果你需要这个,请赶紧转发这篇文章到你的朋友圈,并添加评论“搞嵌入的可以关注”。 前5位嵌入的朋友将免费获得这本书!

不是过年,不是过节,我们却还这么任性地发福利!

温馨提示:请留下您的详细地址,本书将免费快递给您! (姓名+单位+职位+详细地址+邮政编码+电话号码+电子邮件)

《学习世界》栏目正式上线,持续更新中。 快来关注吧! 直接回复“单片机”、“嵌入式系统”、“物联网”、“智能硬件”、“嵌入式工程师”、“CPU”、“GPU”、“FPGA”、“Linux”、“Android”、 “ARM”关键字,您可以随时阅读往期相关精彩内容!

嵌入式系统软件教程_嵌入式系统软件教程_嵌入式系统软件教程

相关内容 查看全部