调试无线应用程序
无线应用程序调试部分将介绍分析仪捕获缓冲溢出和工作量巨大的基于串行的协议拆分。通常使工程师淹没于令人厌烦并且耗费时间的任务之中,他们需要手动拼接并解码复杂的背靠背 (back-to-back) 捕获数据以分析单个用户事件的内部工作。本文详细说明了如何利用基于 PC 的工具来轻松地调试和文档化无线应用程序。
无线系统级交互式调试捕获经常会超过传统测试设备的固定长度捕获缓冲容量,甚至对于表面看来很简单的应用程序也是如此,例如无线桌面鼠标设计。调试即使最简单的行为,例如成对的两个无线设备,假如按下第一个设备上的按钮后紧接着再按下第二个设备上的按钮,传统的分析仪在这种情况下会变得毫无用处。同样,利用任何基于交互式的无线调试界面也使您感到异常烦躁,这将会使仅仅在开始和结束部分调试,而中间的数据会被遗留。对于那些尺寸不适当的分析仪,其捕获缓冲会迫使无线工程师忙于应付那些令人厌烦并且耗费时间的任务,他们需要手动拼接和解码复杂的背靠背捕获数据。基于 PC 的分析仪能够连续将捕获的缓冲数据源源不断地流入您的计算机内存中,这不仅简化了那些平淡无味的任务——即不停地为冗长的调试对话捕获数据,而且通过简化那些不必要的拼接操作,还极大地减少了您耗费在后处理和分析数据上的时间。当大家初次看到冗长的捕获缓冲流时,他们常常会很惊讶地学到很多新东西,比如传统的测试设备不能支持的系统级交互式的事件。
将很多基于串行的协议拆分为位和字节的数据,此举不仅容易出错而且还会耗费过多的时间。传统的无线应用程序调试策略,例如贯穿你的应用程序编码 printf 调试语句通常能够减轻很多任务压力,但是在有损害或可能遇到的不必要的副作用的情况下就不适用,例如代码膨胀、代码执行矛盾、代码迷惑以及要求其他的硬件资源。基于 PC 的分析仪配备有灵活的总线级的解码工具,通过点击鼠标按钮就可毫不费力地拆分和精确地显示大块的捕获缓冲数据,从而极大地减少调试时间。快速而高效的总线级解码能够使工程 是愉快地设计(engineering juices flowing),并使其他那些令人厌烦的位级解码任务变成快速和容易受结果驱动的调试界面。一旦您使用了自动化的总线级解码来快速解决复杂的系统级交互式的无线应用程序 Bug,您就会感到一切都已变的如此轻而易举。您甚至可以备忘录的形式记录这些结果。这么好的东西,怎么可能不用呢?
对于后处理和分析捕获的数据,传统的测试设备为工程师提供的那些 “另存为”工具还不能满足要求。通常情况下,这些分析仪会以专用格式来保存所捕获的缓冲数据,一般这会导致极其重要的调试信息丢失。如此一来,就迫使工程师把无数的时间耗费在将所保存的捕获缓冲数据转化为ASCII格式上,进而将其转移至过时的软盘并导入到基于 PC 的软件中以便于最后进行后处理和分析。基于 PC 的分析仪可将他们的捕获缓冲数据直接保存到计算机的硬盘中,并将重要的信息释放到电子表格(例如Microsoft Excel)中进行后处理和数据处理,同时还允许任何人使用基于 PC 的虚拟仪器软件以其原始的格式来重放所捕获的数据。此外,无线应用行业专家经常会一分为二,成为不同工种的专家。在调试交互式无线应用程序时,单独减少所捕获数据的后处理时间显得十分重要,这可通过增加多站点工程技术人员花费在查看和分析所捕获数据上的时间总数来实现。如果一种软件能够允许任何人重放已知的、良好的、系统级交互式的捕获缓冲数据,并将其行为与调试系统的捕获缓冲数据加以比较,那么这种无线应用程序调试工具的价值是不可估量的。也可将重放作为简单的培训工具使用,以便于更好地理解和文档化各种无线应用程序的交互性和依赖性,通常这两项仅出现在此领域。
即使对最聪明并且精力最旺盛的工程师来说,调试此领域的无线应用程序也是一项很具有挑战性的工作。拖着笨重的测试设备,绕着全球的机场和往返列车满世界乱转,这种场景深深地将生活中最痛苦的一组回忆烙记到人的脑海中。当工程师按部就班地改组测试工作台以适应最近的“本周调试成果”时,经常就会超过花费在捕获数据上的时间。基于 PC 的分析仪旨在利用计算机上众多的可用资源,这种分析仪常常可小到足够在飞机的椅背小桌上使用。。 我想,这意味着天空或许真的不是极限。
作者:Troy Gentry(电子邮件:tge@cypress.com),赛普拉斯半导体公司人机接口器件集团首席应用工程师。
评论