您对调试器的了解程度如何?

调试器可以说是嵌入式软件工程师可用的最重要的工具之一。调试器不仅能够将固件加载到微控制器上,还可以窥探存储器和寄存器的深度,从而揭示其内部工作原理。尽管调试器很重要,但许多开发人员却忽略了调试器的一些最有用的功能,而对调试器可以真正完成的工作不感兴趣。

许多开发人员误以为所有调试器的创建都是平等的,这导致许多开发人员选择了可以买到的最便宜的调试器。工程师们将在示波器和其他工具上花费数千美元,但是一旦调试器出现在图中,则一百美元是太多了。首选的调试器是免费的,功能有限的版本,该版本随附低成本的开发套件。专业的调试器可以为开发人员做更多的事情,而不仅仅是简单地加载代码。

首先,好的调试器可以减少开发时间。真?绝对!考虑以下事实:许多低成本调试器都限制了可用于与目标处理器进行通信的时钟频率。时钟速度看似次要的细节,但考虑到在开发周期中将固件修改多少次并重新加载到系统上。总时间可能不等于一个数字,可能会很长,但同时还要考虑应用程序运行时系统的响应能力。每一刻都浪费了宝贵的时间。

调试器的第二个功能也没有得到充分利用,它具有两个以上的断点的能力。许多使用低级工具的开发人员花费太多时间来启用和禁用断点。调试一个平均错误通常感觉至少需要五个断点,但是工程师必须设置它们,启用两个,击中该断点,然后禁用一个断点,才能设置下一个断点,而不是设置这些断点并深入研究问题。被启用。在一个项目的过程中,您可能会想知道,为节省500美元而浪费了多少美元和分钟。

许多现代调试器开始增加的最酷的功能之一就是能够监视微控制器或嵌入式系统的能耗。制造商正在添加工具,以通过包含可对外部分流器进行采样的模数通道来帮助最大程度地减少能耗。在记录应用程序的程序计数器的同时执行分流器的测量,这会为开发人员提供与当时正在执行的功能或程序语句相关的能量配置文件。然后,开发人员可以专注于固件中的那些区域以进行能量优化。

当应用程序代码执行时,调试器还可用于记录和导出应用程序符号。调试器能够记录存储在内存中的值以供以后检查,如果需要,可以实时绘制它们。结果是开发人员可以创建视觉表示系统如何响应和行为。绘制应用程序内部行为的绘图能力对于发现错误或简单地验证系统的运行至关重要。

某些调试器甚至可以执行其标准调试功能,同时为第三方软件提供一个界面来监听或控制调试器。开发人员可能有一些特定的信息,他们有兴趣观察或监视IDE调试器的界面所不支持的信息。许多专业调试器都有软件开发工具包(SDK),使工程师可以定制和开发自己的软件工具,然后将其用于自动化和/或测试其嵌入式系统。

不幸的是,许多开发人员从未体验过这些功能可以帮助他们开发嵌入式系统的速度和便捷性。开发人员陷入了两个断裂点和最少的功能争夺战中。最有能力和最昂贵的调试器一天的花费不会超过一名高级工程师的开销。那么,当功能强大的工具近在咫尺时,工程师为什么要用最少的功能折磨自己呢?

2 thoughts 上 “您对调试器的了解程度如何?”

  1. 嗨,雅各,

    我可以与这篇文章相关,因为我’由于调试器引起的问题,我彻夜难眠。作为Cortex-M系列内核的优秀调试器,您会从自己的经验中提出什么建议?

    谢谢,
    Zyc。

    1. 感谢您的评论。我喜欢几种不同的Cortex-M调试器。如果需要指令跟踪,则有SEGGER J-Link Ultra +和J-Trace。我现在最常使用这些。如果我对低能耗和优化感兴趣,那么可以使用具有I-Scope功能的U-Linkplus或IAR I-Jet。我在Embedded World的PE Micro上看到了一个针对Cortex-M的新调试器的演示,但我尚未对其进行评估,它可能尚不可用,但它们通常也做得很好。还有其他几种调试器,但我’我们发现它们在硬件和开发环境之间是最好,最灵活的。

      我希望这有帮助!

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.