使用新的 Arduino IDE 调试RTL8722

声明


新的 Arduino IDE 仍处于测试阶段,特性和功能可能会在没有警告的情况下被改变或删除,并不代表最终发布版本。

硬件和软件要求


硬件:
RTL8722 开发板
SEGGER JLink 调试器(J-Link Debug Probes by SEGGER – the Embedded Experts)
软件:
Arduino IDE 2.0 beta 测试版本 (https://www.arduino.cc/en/software)
SEGGER JLink 软件包 (SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace)

安装步骤


  1. 安装 Arduino IDE 2.0 beta。调试过程已经用 Arduino IDE 2.0.0-beta. 8 进行了测试。较旧的版本可能无法正常运行。 安装 Arduino IDE 2.0 的说明可以在以下网站找到 https://docs.arduino.cc/software/ide-v2/tutorials/getting-started/ide-v2-downloading-and-installing.

注意:Arduino IDE 2.0 可以与旧的 Arduino IDE 共存。任何对开发板或程序库修改都会影响到两个版本的 IDE。

  1. 安装 SEGGER JLink 软件包。调试过程已经用 JLink 软件 V7.50 进行了测试。

对于 Windows 用户:这个过程假定 64 位版本的 JLink 软件安装在 C:\Program Files\SEGGER 文件路径下。

  1. 在 Arduino IDE 2.0 菜单中,在 File → Preferences → Additional boards manager URLs 中,复制并粘贴以下地址: https://raw.githubusercontent.com/Aurical/ambd_arduino/master/Arduino_package/package_realtek.com_amebad_early_index.json

  2. 在 Arduino IDE 2.0 菜单中,在 Tools → Board → Boards Manager , 找到并安装 Realtek Ameba RTL8722DM/RTL8722CSM 的开发板支持包。调试功能已经在 3.0.9-build20210708 版本中启用。注意:这样的作法将会覆盖你目前安装的 Ameba 版本和环境,请在操作前做好备份,保留你需要的文件。

  3. 在工具栏附近的菜单中,选择与你的开发板和对应的 COM 端口。
    3

  4. 打开示例代码 File → Examples → AmebaDebug_Example → ExampleDebug .

  5. 按照注释,在 debug_custom.json 文件的 serverArgs 字段中加入正确的文件夹路径。

  6. 将开发板和 JLink 调试器与计算机链接。使用跳线,按照下图所示的引脚接续图,将调试器连接到开发板的 SWD 引脚处。如果您还不知道 JLink 调试器上的 SWD 引脚信息,请访问下方网址:J-Link Interface Description.

    JLink 调试器 RTL8722 开发板
    VTref 3.3V
    GND GND
    SWDIO SWDIO
    SWCLK SWCLK



SWD

调试过程


关于如何使用 Arduino IDE 调试,请参考 https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-debugger。

  1. 调试前,确保启用 Sketch → Optimize for Debugging.
    4

  2. 使用 USB 转 UART COM 串口,按照 RTL8722 编译上传示例程序的方式进入“上传模式”。RTL8722 暂时还不支持使用调试器下载程序。
    5

  3. 上传完成后,重启开发板,就可以通过点击 “上传” 图标旁边的 “调试” 图标开始调试。你应该会看到程序停止运行,并且在程序的第一行代码处出现代表强调的黄色高亮,这一行高亮表示处理器即将处理的下一行代码。

注意:RTL8722 只有2个硬件断点寄存器。当你设置断点时,这些将被用掉。试图设置太多的断点会导致调试失败,Output 窗口将显示 “WARNING: No more breakpoint resources left”,你可能会看到一个横跨代码的红条,如图所示。发生这种情况时,可能需要停止调试并重启。

注意:使用任何单步运行功能(step over, step into, step out)都需要两个硬件断点资源是空闲的。在使用这些功能之前,应该先删除或停用所有现有的断点。
8

2 Likes

Hi all!
From what I understand (few words here and there), this chat is a very important!
Can somebody translate it to english?
Thanks !
Evyatar

you can find the English version here: [Tutorial] Debugging RTL8722 with the new Arduino IDE

1 Like

Thanks

Regards
Evyatar

בתאריך שבת, 17 ביולי 2021, 11:00, מאת wyy via Realtek Ameba IOT Developers Forum (RTL8722 RTL8195 RTL8710 RTL8720 BW16 Development board) - IOT / MCU Solutions 瑞昱開發者論壇 開發板 开發者论坛 开發板 ‏<ameba@discoursemail.com>:

你好,请问如果我们有一款RTL8722DM的模块(非开发板,是我们自己开发的模组),如何才能支持Arduino?