2007年度调查揭开嵌入式市场的真相!
扫描二维码
随时随地手机看文章
《Embedded Systems Design》进行了一次非常全面的年度市场调查。你们可能已经知道了这个消息,因为你已经参加了这次调查。事实上,已经有四位读者成为我们随机抽签的中奖者。
这个调查是在全球范围内进行的,大部分是通过电子邮件在今年年初进行的。调查被发给本刊物(美国版本和欧洲版本)和《EE Times》(《电子工程专辑》姊妹刊物)的部分订阅者以及我们举行的嵌入式系统研讨会(Embedded Systems Conferences)的部分出席者,超过1,000位嵌入式系统设计工程师对调查进行了回复。
对于不熟悉本次调查的读者,我们回顾一下所涉及的领域:
你的设计中包含哪些功能?
你正在同时做几个项目?
你的团队有多少人?
你使用的是什么类型的工具?
你曾经选择过哪个处理器?
你曾经选择过哪个操作系统?
我不会在这里把整个调查过一遍,但是我想分享一些我觉得特别有趣、特别麻烦和特别吸引人的部分。如果你想获得有关整个调查的更多信息,请直接与我联系(rnass@cmp.com)。本次调查的真正亮点在于,我们多年以来都做一个几乎相同的调查,我们可以展现趋势、演进过程和产品周期结束情况等。年度同比数据非常有趣。
以下就是一个值得注意的统计:从2005~2007年,新项目数从48%下降到39%,如图1所示。这种下降已经差不多全部被改进和维护的增加所抵消。这说明什么?可以说明项目太复杂,以致它们需要比过去更多维护吗?或者这些设计比以前的模型好,因此产品周期更长?在我看来,这是这两种作用结合的结果,由于生产一个新产品的成本大幅增加,因此后者更加重要。但是,很明显,对每个新一代处理器进行编程需要更多时间,这仅仅是因为向开发工程师提供了更多功能。更多代码意味着更多测试,因此每个设计阶段都会耗费更长时间。
为了从事实上检验这个问题,我联系了特约编辑Michael Barr。Barr怀疑设计工程师已经改变了他们定义“新项目”的方式。“过去人们是通过如果你的项目增加了互联网连接,但是仍在通过其它方式做同样的事情,来定义新项目的。现在,每个想要互联网连接的工程师都有新项目。因此他们将这种变化(包括应用更新)视为升级,而不是新项目。”
升级CPU
对于那些对现有项目进行升级的设计工程师,56%表示他们在使用新处理器(图2)。这是因为他们需要更多性能或者因为他们正在使用的处理器不再生产了吗?我的猜测是两者都有可能,但是多半是因为需要更多性能。CPU供应商现在对如何和何时废弃处理器非常谨慎,这是系统开发工程师最担心的事情之一。
正如我们在Freescale最近的公告中看到的,CPU供应商正在尝试让设计工程师尽可能容易地迁移至更高性能的处理器。对于Freescale而言,他们声称设计工程师采用其Flexis家族微控制器可以毫不费劲地从8位迁移至32位。这是一个逐渐增强性能的好例子。但是大多数情况下,只能通过转换至新家族的器件才能实现性能的步进式飞跃,而不是仅仅在一个家族器件内向上升级。
Linux
这是让我感到惊讶的一个方面,至少直到我通过思考对以下数据作了分析:不考虑在其下一个项目中采用Linux的人数从34%上升到48%,2005年则为27%,如图3所示。请记住,虽然采用Linux的人数相对较多,但是未采用Linux但将来会考虑采用Linux的人数却在减少。这归因于这样一个事实:Linux已经不再是新事物了。将来考虑采用Linux的较高比例的一部分群体已经在采用Linux了。
编审委员会成员Bill Gatliff认为,我们最终会将Linux推向绝路,并认识到它并非对所有应用都合适。“对此人们变得越来越实际。”以下是Barr不得不说的话:“几年以前我对Linux是如何给人以强烈印象的感觉奇怪。总是会出现一些有趣的新技术,但是它们不一定总是会被采用。但是Linux竟然成功了,许多人在电信等应用中采用Linux,以获得像PC一样的能力。这种趋势无疑在继续,但是很明显,速度已经降下来了。”
由于Linux不像火箭科学一样成本高昂,因此成本是工程师们对Linux感兴趣的一个主要原因(图4)。一个令工程师们对Linux退而远之的原因是预测和实际之间的开销没有完全计算在内。虽然内核本身可能免费或者相对便宜,但是支持成本攀升得比预期的快。并且必需第三方工具来实现应用特定功能,这也会增加成本。
商业操作系统
从总体上看商业操作系统,其采用出现了显著下降(图5)。但是令人惊讶的是,这种下降并未被商业分布的开放源代码操作系统的采用抵消。对于操作系统供应商而言,这是一个潜在的坏消息。
据Barr推论,这种下降是因为“对于操作系统技术而言,真相就在其中。每个RTOS基本上都是相同的。你需要的是将你的问题分成多个任务和获得足够计算能力的方法。然后你不妨采用基于优先级的抢占式内核。无论你是从书中或者通过附带的免费源代码获得你的OS,还是免费获得一些其它东西,这些东西全部都是一样的。除非你需要某种驱动器可用性或者某种特殊的先进功能,否则你真的不会愿意为此而花钱。”
这种下降是由于用户不满意对它们提供的支持吗(图6)?影响使用哪个商业操作系统决定的关键因素是质量和技术支持的提供。这一数字从27%上升到50%,两年内几乎翻了番。 [!--empirenews.page--]
语言和工具
作为编程语言,C语言在目前和未来的项目中的使用规模越来越大(图7和图8),大部分是以C++为代价。
为什么相对成熟的C语言的普及率在增加?据Gatliff表示,其中一个原因在于越来越多的设计被外包。“C++所需的技能比C语言所需的技术高。特别是当你考虑到在目前和下一个项目中采用Java的人仅有小幅增加的时候。我预期(并希望)采用Java的人将增加。也就是说,我不会认为8%左右的增长就意味着人们在放弃采用C++。”
Barr对这些结果完全不感到惊讶,他表示,这是一个将延续下去的趋势的一部分。“如果你着眼于年度同比数据,你会发现C++并没有多少增值。事实上它已经消失了。即使C++的‘可重用性’可能更高,但这种特性在嵌入式领域中并不一定适用。因此许多嵌入式软件绑定至正在实现的精确硬件。你可以重用你的API,但是你的代码的内部组成会随项目的不同而变化。嵌入式领域的首个优先级是系统正常工作。C语言在这方面做得很成功,你可以用它完成许多主要任务,特别是当安全性非常关键时。C++往往会引入大量变量,从而使项目变得更复杂。”
我们提过这样一个问题:你会在你的嵌入式设计活动中对哪一项进行改进(图9)。第一名(是第二名2倍以上)是调试工具。从同一问题的年度同比结果中可以看到,回复“编程工具”的人数从2005年的25%下降到了2007的10%。
Gatliff表示,这个问题的分析非常简单。“人们只想拥有更好的工具周期。编程工具的下降可能是因为Eclipse已经开始解决人们对调试工具的一些抱怨。此外,现在已经有编程工具供应商在提供能够在Linux环境下同时进行内核和应用调试的工具,而在我看来,这是一种了不起的能力。”
Barr表示,“这里的关键在于调度,使产品更快面市。我对读者寻求更好的调试器感到惊讶,这是因为调试器不会真正地帮助你设计。如果你把时间花在尝试找出问题的调试器上,那么你就有麻烦了。我确实花时间观察过人们在使用调试器时没有发现任何情况,此时你必须做的就是推论出问题的原因,了解计算机是如何工作的。然后用调试器来确认你的猜想。”
这里有一点让我感到欣慰。多年来我一直在向处理器供应商倡导一切都在于工具的理念。如果你拥有世界上最好、最快、功率最低的处理器,情况不会因此而有任何不同。如果你没有在这种处理器周围建立正确的生态系统,那么你将不会成功(图10)。
外包
最近讨论得比较多(特别是你们)的一个话题是外包问题,工作是在国内做还是外包到国外。大约39%的回复者表示,他们已经做过一个或更多部分外包或者完全外包的项目(图11)。
外包到国外的项目是外包到国内项目的两倍。你可能会猜大多数项目被外包到了美国之外的哪个地区。时间到了――答案是印度(图12)。
其它值得注意的统计
哪个设计阶段耗时最长(图13)?耗时最长的是测试和调试阶段。
模拟器件提供商要注意了!对于品牌忠诚度而言,这可能不是件好事。根据本次调查,差不多三分之二(63%)的回复者声称当他们选择模拟器件时没有品牌忠诚度(图14)。
这准确吗?根据《Planet Analog》编辑Bill Schweber的说法,这是不准确的。“坦白讲,这些结果与我从工程师和供应商(他们不可否认地带有偏见)了解的情况相矛盾。以我的经验,设计工程师通常会选择一个领域中的两到三个顶级模拟器件供应商,特别是他们已经打过交道,拥有符合规格(最大和最小规格,并不仅仅是额定规格),并且通过应用说明、演示板、参考设计甚至现场应用工程师对他们进行支持的供应商。如果他们拥有丰富经验的话,他们会对更换供应商,甚至更换同一供应商的产品家族有所顾忌。”
虽然许多设计工程师正在采用可编程逻辑(这是我最近探讨过的另一个典型现象),但是在其可编程逻辑中采用嵌入式处理器的比例却相当少,仅36%,一半工程师表示他们采用硬内核,一半表示采用软内核(图15)。令人欣慰的是,采用嵌入式处理器的人数在增加,虽然增加速度很慢。