我从事工程设计朋友都知道我是个双面手(switch hitter);也就是说,我软硬件无所不精。过去,我做了多年的硬件工程设计,然后换了工作,有时也换公司,在转回老本行之前又干了几年软件开发。
Jim Turley
我认为,在栅栏两边都走走,从整体上来看,能造就更优秀的工程师。当程序员理解了硬件是如何真正工作时,他们就能写出更好的代码;如果硬件工程师花点时间写代码,就不会设计出愚蠢的东西,比如只写寄存器。
显然,有头脑的开发人员数量超出我的想象。《嵌入系统编程(Embedded System Programming)》杂志最近完成了一个大型调查,我们询问了数万名开发人员,问他们如何选择目前使用的微处理器或微控制器芯片。调查结果令人惊讶。
这个问题仅仅是数十个调查问题中的一个。这数十个问题涵盖了硬件开发、软件开发、操作系统、工具、预算、开发人员数量、趋势等等。我巧妙地在调查中问了两遍这个问题,但用词不同,以便观察结果是否一致。结果虽一致,但仍非我预期的结果。那是个简单的多项选择问题:“选择处理器有哪些重要因素?”我们设置了大约12个选项,包括价格、性能、功耗、引脚、外围等通常的P因子。我们还包含了一些选项,如软件兼容性、对芯片供应商的熟悉度、对指令集的熟悉度、开发工具的可获得性等等。甚至还有一个填充空白项,万一我们遗漏了什么。接受问卷调查者最多可以选择3个答案。
然后,在这些选项中,涌现出了其中的赢家……
选得最多的选项是什么?被视为选择处理器的最重要的一个因素,不是芯片的价格。实际上,价格排名第三,占总投票的50%以下。外围和功率还未能挤入前五之列,按重要性分别只排在第七和第八位。根据我们的问卷回答者,处理器最重要的方面甚至不是处理器本身,而是软件。
到目前为止,参与调查的开发人员认为(选择处理器)最重要的标准是“软件工具的可获得性”。工具排名超过性能,得票高出50%,超越了价格、操作系统等任何方面。毫无疑问,工程师基于器件可用的软件工具来评估他们的处理器。需要提醒你的是,我们的调查对象不仅仅是程序员。我们特意在调查中包含了硬件工程师、工程设计经理及系统工程师,以期得到好的典型意见。硬件工程师选择软件工具的数量几乎与软件人员一致。相当一致的看法:软件工具主宰一切。
如果你是制造芯片的,这对你来说意味着什么?从这点来看,你需要将自己视为一个软件公司。你的客户已经在运作。你的第三方工具程序应该首当其冲,因为客户对那些工具的依赖甚于对你芯片的依赖。在另外一部分调查里,我们评估了对工具的忠诚度及对芯片的忠诚度。猜猜哪个脱颖而出?
当然,芯片仍然需要有面向应用的正确的硬件特性。处理器不是通用的。但糟糕的硬件设计只会失去销量;好的软件工具创造销量。除非你兼顾软硬件两个方面,否则你永远不会明白你失去的是什么。
作者:Jim Turley
EE Times姊妹刊物《嵌入式系统编程》总编辑
京公网安备 11011202001138号
