TechInsights最近进行的一项嵌入式市场研究显示,只有37%的受访者认为示波器是《最受青睐/最重要的硬体/软体工具》。排名第一的是编译器和组译器,55%的受访者选了它们。
最青睐’和‘最重要’的工具也许不尽相同,但编译器必然是其中最重要的工具之一。若少了它,我们在开发韧体时就完全束手无策。不过,现今的编译器并不令人满意。理想的编译器应该能默默进行所有的无聊工作,工程师完全无须顾虑到它。
为何示波器的表现不佳?据Electronics.ca预测:2010年,全球示波器市场约达12.5亿美元。与其它许多电子产品如微处理器相较,其规模要小得多,但对嵌入式系统工具市场而言却很庞大。
此外,许多研究均预测嵌入式工具市场规模约为30亿美元,但我对此持保留态度。分析师常常莫名其妙地把即时作业系统(RTOS)的销售也算进工具销售内,这几乎没什么意义。而且,将包含各种RTOS及相关工具的业界主要厂商销售额加总,所得结果仍远不及10亿美元。所以,示波器12.5亿美元的销售比整个嵌入式工具市场的规模大得多。人们会认为有很大比例的示波器是销售给嵌入式硬体和软体设计师。
过去15年来,嵌入式产业经历了一波工具转换。在上世纪80和90年代,多数使用电路内模拟器(ICE)。这些工具让我们能针对一些领域进行除错——单步骤、检查变数,以及时域。ICE透过即时追蹤、性能分析、计时器和其它特性来支援时域除错,上述特性对微秒级管理来说不可或缺。
然而,随着处理器速度不断提升,将讯号导引到ICE模拟头已不切实际。表面黏着技术已将封装尺寸缩小到再无法实行探测的水準。而诸如快取记忆体、管线以及MMU等複杂的晶片上功能,也使得CPU的工作和接脚上的讯号不再有任何关联。儘管Lauterbach和Signum等少数企业仍继续提供这种工具,但ICE市场几乎已经消失了。
在许多研发机构,BDM和JTAG除错器取代了ICE。BDM和JTAG价格低廉、易于安装,它们利用CPU上的逻辑资源将除错资料发送到PC。其工作不受目标系统时脉速率的影响,它使用的是一个简单的专用连接器,缓解了所有表面黏着问题。
但BDM和JTAG除错器并不具备任何处理时域问题的方法。它们提供像是Visual Studio的介面。因此,示波器就显得更加重要。只要选取程式码中的一个位元,示波器将立即显示执行时间、延迟时间以及你需要了解的许多其它资讯。
好消息是,BDM/JTAG工具已获得改善。更多厂商增加了用于解决除错问题的硬体资源,并添加了诸如硬体中断点、追蹤等各种晶片上逻辑资源,因而重现了即时除错功能。
讽刺的是,参与CPU设计人们告诉我:他们受到管理层的‘逼迫’,要他们尽可能拿掉这类性能。老闆希望减少电晶体数量,或把这些电晶体用于实现更多功能或用于添加其他週边。正如Jules Verne《从地球到月球》一书中所表现的,存在于装甲製造商和枪炮製造者间本质上的紧张关係:在嵌入式世界,提供除错资源和降低晶片成本间也存在着无休止的冲突。
简陋的除错器将不可避免地导致更高的工程费用。高工程成本推动销售价格的上涨,因为这些非重複性工程支出必须由出售的产品分摊。然而,长期性的思考模式,也许快要成为一种过气的稀有概念了。
我怀疑,晶片製造商和开发商间的冲突就是市场结构本身的一部份,且永不会消失。这是个遗憾,但它也为其他更智慧的工具提供了机会。例如,可将Micrium的μC/Probe与示波器结合。μC/Probe是我所见过最有趣的工具之一。它将嵌入式系统内的一段通讯码与基于PC、可感知ELF或类似除错档的应用连结起来。可拖曳萤幕上的一些条目(如虚拟仪表和运算表)并将其与程式码中的变数连结。μC/Probe会週期性採样这些变数并在萤幕上更新。也就是说,在系统闲置时,能看到虚拟类比仪表显示难道不是件很酷的事吗?
更深入地探究关于除错工具的这些研究资料结果,可看到有53%的设计师认为除错器是最重要的工具。假设‘除错器’是我们用来驱动硬体工具的软体应用,我同意,这是一个非常重要的工具。许多计画把50%的研发努力花在除错和测试上,所以面对这些应用,我们需要经年累月持续的艰辛付出。重要?你说对了。最喜欢的?我当然希望如此,并希望它是被精心设计因而能不折不扣地支援我们的工作且不会阻碍我们的努力。