24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
行业资讯>
嵌入式软件-它有多复...

行业资讯

嵌入式软件-它有多复杂?


从历史上看,嵌入式系统非常简单:只有几千个内存的8CPU。尽管仍在开发这种简单的系统,但现在有许多资源丰富的设备与一个或多个32位处理器和许多兆字节的内存一起使用。这些设备的强大功能导致软件的大小和复杂性增加。但是,这种复杂性有什么限制?

如果我们看一下机械系统,则存在很大的复杂性。迄今为止,最复杂的机器是航天飞机轨道飞行器,它具有一百万个活动部件。考虑到车辆面临的设计挑战有多大,它们的表现非常出色。我想没有内在的原因无法创建更复杂的机器。

在社会发展中,电子系统一直在变得越来越复杂,越来越小。在1950年代,复杂的电子设备可能具有100个(分立)晶体管-甚至可能使用了真空管。快进到今天,芯片上的数十亿个晶体管并不少见。每年,芯片的几何尺寸都减小到越来越少的纳米。但是有一个理论上的限制:我不认为晶体管(或任何种类的电路元件)会比单个原子小。但是我知道什么?

在过去的5060年中,软件的复杂性急剧增长,反映了硬件的进步。我猜这是软件的最小单元,以这种方式衡量,软件复杂性使机械设计方法落后了,我想比硬件领先一两个数量级。但是,我看不到对软件的理论复杂性/大小的任何特定限制。制作大内存芯片非常容易,因此我们可以使代码越来越大。

当然,设计是瓶颈。硬件设计非常具有挑战性,需要复杂的电子设计自动化(EDA)。软件开发会有点困难。但这不仅需要工具。

在生活的几乎所有方面(包括嵌入式软件),基本上都有3种方法应对更大的挑战:

 1.加倍努力(即增加人手)

         2.工作时间更长

         3.更聪明地工作

有时(1)和(2)可以互换。例如,在建筑工程项目中,更多的劳动力可能会加快工作速度。但是,如果只是分配更多的人员来从事这项工作,那么软件开发的回报将迅速减少。这主要是因为代码不同部分之间的相互关系以及开发人员进行通信的必然需求。他们最终花费更多的时间进行交流,而不是编码。在某种程度上,开发团队的智能扩张可以带来好处。这需要确定特定的专业知识要求并相应地分配人员。这与嵌入式开发特别相关,在嵌入式开发中,专业领域可能是:应用程序级代码,驱动程序开发,OS配置,网络,UI设计等。

智慧工作听起来像公司的口号(我想起来是几年前的),但是我的意思是让开发人员能够在给定的时间段内创建和调试更多功能。广义上讲,有两种(并非不相关的)方法:

更高抽象级别的代码

重用现有代码(并使可重用代码)

更高的抽象水平意味着远离常规语言(如C),并拥抱其他范式。UML是一种可能性。可重用代码在很大程度上是面向对象编程(OOP)技术的领域。可以创建可重用的对象,并且OOP可以封装专业知识-再次对于嵌入式特别有用。

 

请输入搜索关键字

确定