24小(xiǎo)时联系電(diàn)话:18217114652、13661815404
中文(wén)
- 您当前的位置:
- 首页>
- 電(diàn)子资讯>
- 行业资讯>
- 嵌入式软件-它有(yǒu)多(duō)复...
行业资讯
嵌入式软件-它有(yǒu)多(duō)复杂?
从历史上看,嵌入式系统非常简单:只有(yǒu)几千个内存的8位CPU。尽管仍在开发这种简单的系统,但现在有(yǒu)许多(duō)资源丰富的设备与一个或多(duō)个32位处理(lǐ)器和许多(duō)兆字节的内存一起使用(yòng)。这些设备的强大功能(néng)导致软件的大小(xiǎo)和复杂性增加。但是,这种复杂性有(yǒu)什么限制?
如果我们看一下机械系统,则存在很(hěn)大的复杂性。迄今為(wèi)止,最复杂的机器是航天飞机轨道飞行器,它具有(yǒu)一百万个活动部件。考虑到車(chē)辆面临的设计挑战有(yǒu)多(duō)大,它们的表现非常出色。我想没有(yǒu)内在的原因无法创建更复杂的机器。
在社会发展中,電(diàn)子系统一直在变得越来越复杂,越来越小(xiǎo)。在1950年代,复杂的電(diàn)子设备可(kě)能(néng)具有(yǒu)100个(分(fēn)立)晶體(tǐ)管-甚至可(kě)能(néng)使用(yòng)了真空管。快进到今天,芯片上的数十亿个晶體(tǐ)管并不少见。每年,芯片的几何尺寸都减小(xiǎo)到越来越少的纳米。但是有(yǒu)一个理(lǐ)论上的限制:我不认為(wèi)晶體(tǐ)管(或任何种类的電(diàn)路元件)会比单个原子小(xiǎo)。但是我知道什么?
在过去的50至60年中,软件的复杂性急剧增長(cháng),反映了硬件的进步。我猜这是软件的最小(xiǎo)“单元”,以这种方式衡量,软件复杂性使机械设计方法落后了,我想比硬件领先一两个数量级。但是,我看不到对软件的理(lǐ)论复杂性/大小(xiǎo)的任何特定限制。制作大内存芯片非常容易,因此我们可(kě)以使代码越来越大。
当然,设计是瓶颈。硬件设计非常具有(yǒu)挑战性,需要复杂的電(diàn)子设计自动化(EDA)。软件开发会有(yǒu)点困难。但这不仅需要工具。
在生活的几乎所有(yǒu)方面(包括嵌入式软件),基本上都有(yǒu)3种方法应对更大的挑战:
1.加倍努力(即增加人手)
2.工作时间更長(cháng)
3.更聪明地工作
有(yǒu)时(1)和(2)可(kě)以互换。例如,在建筑工程项目中,更多(duō)的劳动力可(kě)能(néng)会加快工作速度。但是,如果只是分(fēn)配更多(duō)的人员来从事这项工作,那么软件开发的回报将迅速减少。这主要是因為(wèi)代码不同部分(fēn)之间的相互关系以及开发人员进行通信的必然需求。他(tā)们最终花(huā)费更多(duō)的时间进行交流,而不是编码。在某种程度上,开发团队的智能(néng)扩张可(kě)以带来好处。这需要确定特定的专业知识要求并相应地分(fēn)配人员。这与嵌入式开发特别相关,在嵌入式开发中,专业领域可(kě)能(néng)是:应用(yòng)程序级代码,驱动程序开发,OS配置,网络,UI设计等。
智慧工作听起来像公司的口号(我想起来是几年前的),但是我的意思是让开发人员能(néng)够在给定的时间段内创建和调试更多(duō)功能(néng)。广义上讲,有(yǒu)两种(并非不相关的)方法:
更高抽象级别的代码
重用(yòng)现有(yǒu)代码(并使可(kě)重用(yòng)代码)
更高的抽象水平意味着遠(yuǎn)离常规语言(如C),并拥抱其他(tā)范式。UML是一种可(kě)能(néng)性。可(kě)重用(yòng)代码在很(hěn)大程度上是面向对象编程(OOP)技术的领域。可(kě)以创建可(kě)重用(yòng)的对象,并且OOP可(kě)以封装专业知识-再次对于嵌入式特别有(yǒu)用(yòng)。