自从树莓派在2021年1月推出Raspberry Pi Pico和RP2040微控制器以来,很多人一直在使用一个Pico来调试另一个Pico上运行的程序。

DEBUG_PROBE_PCB_TOP-800x531.jpg

受到这一趋势的启发,最近树莓派官方又推出了Raspberry Pi Debug Probe。

Raspberry Pi Debug Probe 提供:

  • USB 到串行线调试(SWD)桥
  • 通用 USB 串行适配器
  • 连接主机和调试目标的电缆

虽然它是针对Raspberry Pi Pico和其他基于RP2040的板子设计的,但这个调试探针理论可以用来调试任何基于ARM的微控制器(只要这些微控制器提供了一个带有3V3 I/O的SWD端口)。


错误搜索


编程过程中需要Debug,大多数的调试器都提供了一套共同的基本功能(单步、断点、变量和内存的检查),但这些功能的提供方式取决于你选择的语言和操作环境。

也许你使用的是一种高级的解释型编程语言,比如Python,它的调试功能直接内置于运行环境中;如果你使用的是一种低级的编译编程语言,比如C语言,但你的程序是在Linux操作系统下运行的,像gdb这样的调试器,可以在你的程序运行时与之互动,以提供Debug的能力。

但是,如果你的C程序直接在处理器上运行,没有操作系统(这通常被称为裸机操作)呢?又或者你正在编写一个操作系统呢?在这种情况下,你需要一种方法来访问处理器本身所具有的调试能力,这也就是调试探针的作用。

DEBUG_HERO_CASE-800x533.jpg


什么是Debug probe?


现代化的Arm架构控制器,包括Raspberry Pi自家的RP2040,都内置有Arm的CoreSight调试架构,在芯片上提供有 Access Port(AP)来用于单步,设置断点,观察处理器寄存器的值,并通过处理器的总线接口访问内存和外设。

这些微控制器的外部都会提供一个Debug Port(DP),让外部设备可以通过这个接口来进行探查,在Raspberry Pi Debug Probe上,就带有一个3针的Serial Wire Debug(SWD)接口,用来连接访问芯片的DP口,而另一头再通过USB接口连接到PC或者Mac,让开发者可以在Host这边对芯片进行debug。

Debug probe提供了一个USB和SWD协议之间的桥梁。虽然如果你的主机是树莓派的话,并不严格要求(你可以将目标的SWD端口直接连接到树莓派的GPIO),但通过USB连接要方便得多。如果你用的是PC或Mac,USB甚至是你唯一的选择。

Coresight-Debug-Probe-800x267.png
Debug probe提供了USB和SWD协议之间的桥梁,允许主机访问目标的调试端口


串口通讯


除了用来debug,Raspberry Pi Debug Probe还可以作为一个USB串口转接器来使用,通过UART接口在电脑与微型控制器之间建立通讯,在后者上面做调试和诊断,这个用法对于不少喜欢折腾开发板的玩家会很喜欢,相比一些专用的USB串口转接器,Raspberry Pi的这个价格也更便宜,可以在很大程度上取代了曾经无处不在的 FTDI 电缆。

FTDI是一家苏格兰半导体装置公司,提供一系列基于USB转换器线缆有多种连接选项,包括转换从USB到 RS232,RS422或RS485接口,以及基于TTL信号接口,以便支持传统设备与现代计算机设备及其相关的软件驱动程序。

DEBUG_PROBE_WITH_CABLES-800x533.jpg

这个几十元的小工具除了有主体,也附带有配套的连接线,以及一个小外壳,到手自己组装一下就可以用,如果想自己做线的话,可以参考他们的接口文档。

via raspberrypi.com

👍

本文由 CulmartPlay 整理发布,参考 CC-BY-SA 3.0 协议共享,欢迎转载、引用或改编。
感谢您的支持,以共同推动STEM公益教育!

楼主残忍的关闭了评论