首页 > 其他分享 >ARM Debug技术概述

ARM Debug技术概述

时间:2022-08-17 19:45:44浏览次数:70  
标签:core HLT 指令 概述 Debug BRK ARM 调试

调试的重要性

Debug调试几乎是软件开发中最耗时的过程。当产品交付给客户时,解决问题的成本会显著增加。在很多情况下,当一个产品的销售时间窗口很小时,如果该产品晚了,它可能会错过市场机会。因此,系统提供的调试工具对于任何开发人员来说都是非常重要的考虑因素。

许多使用ARM处理器的嵌入式系统的输入/输出设施有限。这个意味着传统的桌面调试方法(例如使用printf())可能不适合。在过去的系统中,开发人员可能使用昂贵的硬件工具,如逻辑分析仪或示波器来观察程序的行为。但现代处理器是一个复杂的SOC,通常包含内存、缓存、和许多其他逻辑单元。可能没有芯片外可见的处理器信号,因此无法通过连接逻辑分析器(或类似的)来监控行为。因此ARM系统通常包括专门的硬件,以提供广泛的控制和观察设施的调试。

ARM处理器提供的硬件特性使调试工具能够对core提供有效控制,并以非侵入式的方式收集大量有关程序执行的数据。有两大类硬件特性,侵入性和非侵入性

ARM debug hardware(侵入性)

侵入式调试提供了一些工具,使你能够停止程序,并在C源代码级别或在汇编语言指令中逐行执行。这个可以通过使用芯片JTAG引脚连接到核心的外部设备,也可以通过调试监视器代码(?)

overview

调试器提供了控制程序执行的能力,使程序停止在某个位置、停止core,单步调试,并恢复执行。你可以在特定指令上设置断点,core运行到断点时,调试器会获得core的控制权。软件断点的工作原理是用HLT或BRK指令的操作码替换指令。

HLT指令:如果连接了外部调试器,并且相关的安全权限允许进入调试状态,那么HLT指令将导致core进入调试状态。
BRK指令:在AArcg64状态下执行BRK指令,会产生一个同步debug异常,但是不会导致core进入调试状态。

  • HLT VS BRK
  • software breakpoint VS hardware breakpoint
    step-in step-over

ARM trace hardware(非侵入性)

Reference

https://developer.arm.com/documentation/102120/0100?lang=en

标签:core,HLT,指令,概述,Debug,BRK,ARM,调试
From: https://www.cnblogs.com/lvzh/p/16596411.html

相关文章