我正在尝试开始使用 B-U585I-IOT02A
开发板,但我无法在开发板上调试应用程序。
到目前为止,我设法做到了以下几点:
- 通过 USB 连接到板上的 CN8 USB 端口到我的 Windows 11 机器。
- 尝试了开箱即用的 B-U585I-IOT02A 编译演示二进制文件,它按预期工作。
- 通过 STSW-LINK007 工具更新板上的 ST-LINK 固件。
- 通过 STSW-LINK009 工具在我的 Windows 11 机器上安装了 ST-LINK USB 驱动程序。
- 安装的 STM32CubeIDE 版本:1.9.0。
- 导入了示例项目 IOT_HTTP_WebServer,它是板上开箱即用应用程序的源。
- 对应用程序做了一个小改动,并在调试模式下构建它。
- 使用 STM32CubeProgrammer v2.10.0 将 .hex 文件上传到电路板。
- 验证我的更改出现在应用程序中。
到目前为止,一切都很好。我无法开始工作的是从 STM32CubeIDE 上传和调试应用程序。我正在尝试使用 IOT_HTTP_WebServer 项目来做到这一点。
所以第一个问题是:是否可以通过连接到“STLINK-V3E USB 端口(CN8)”的 USB 电缆对 B-U585I-IOT02A 板进行编程和调试?在用户手册中它说:
“有两种不同的方法可以对板载 STM32 MCU 进行编程和调试:
• 使用集成在 B-U585I-IOT02A 探索套件上的 STLINK-V3E 编程和调试工具
• 使用连接到 CN9 MIPI‑10 连接器的外部调试工具”
我认为第一个选项是指 CN8 USB 端口,但我不是 100% 清楚。
因此,假设这应该有效,我尝试通过右键单击 STM32CubeIDE 项目资源管理器中的项目并选择“调试为...”->“STM32 Cortex-M C/C++ 应用程序”来运行或调试 IOT_HTTP_WebServer 应用程序。在弹出的“编辑启动配置属性”对话框中,我保留所有默认设置:
我可以单击 ST-LINK S/N 复选框并单击“扫描”,然后会出现一个序列号,因此连接似乎正常工作。我只为屏幕截图手动将序列号替换为 XXXXXX。
然后单击“确定”时,我可以看到电路板上 CN8 USB 连接器旁边的红色 LED 以绿色闪烁两次,然后弹出一条错误消息和文本:
最终启动顺序错误:
启动 GDB 服务器失败
启动 GDB 服务器失败
初始化 ST-LINK 设备时出错。
原因:(0) 未知。请检查目标的
电源和布线。
在控制台视图中,我看到以下内容:
- STMicroelectronics ST-LINK GDB server. Version 6.1.0
- Copyright (c) 2022, STMicroelectronics. All rights reserved.
- Starting server with the following options:
- Persistent Mode : Disabled
- Logging Level : 1
- Listen Port Number : 61234
- Status Refresh Delay : 15s
- Verbose Mode : Disabled
- SWD Debug : Enabled
- InitWhile : Enabled
- Failed to bind to port 61235, error code -1: No error
- Failure starting SWV server on TCP port: 61235
- Failed to bind to port 61234, error code -1: No error
- Failure starting GDB server: TCP port 61234 not available.
- Shutting down...
- Exit.
当我在运行配置的调试器设置中选择调试探针“ST-LINK (OpenODC)”时,行为会有所改变。当我使用此设置运行应用程序时,CN8 端口旁边的 LED 闪烁时间更长,我在控制台视图中看到了这一点:
- Open On-Chip Debugger 0.11.0+dev-00443-gcf12591 (2022-02-09-13:33) [ST Internal]
- Licensed under GNU GPL v2
- For bug reports, read
- clock_config
- Info : Listening on port 6666 for tcl connections
- Info : Listening on port 4444 for telnet connections
- Info : STLINK V3J9M3 (API v3) VID:PID 0483:374E
- Info : Target voltage: 3.327163
- Info : clock speed 8000 kHz
- Info : stlink_dap_op_connect(connect)
- Info : SWD DPIDR 0x0be12477
- Info : STM32U585AIIx.cpu: Cortex-M33 r0p4 processor detected
- Info : STM32U585AIIx.cpu: target has 8 breakpoints, 4 watchpoints
- Info : STM32U585AIIx.cpu: external reset detected
- Info : gdb port disabled
- Info : starting gdb server for STM32U585AIIx.cpu on 3333
- Info : Listening on port 3333 for gdb connections
- Info : accepting 'gdb' connection on tcp/3333
- CPU in Non-Secure state
- target halted due to debug-request, current mode: Thread
- xPSR: 0xf9000000 pc: 0x08001b80 msp: 0x200c0000
- STM32U585AIIx.cpu TrustZone disabled
- STM32U585AIIx.cpu work-area address is set to 0x20000000
- Info : device idcode = 0x20016482 (STM32U57/U58xx - Rev X : 0x2001)
- Info : TZEN = 0 : TrustZone disabled by option bytes
- Info : RDP level 0 (0xAA)
- Info : flash size = 2048kbytes
- Info : flash mode : dual-bank
- Info : device idcode = 0x20016482 (STM32U57/U58xx - Rev X : 0x2001)
- Info : TZEN = 0 : TrustZone disabled by option bytes
- Info : RDP level 0 (0xAA)
- Info : flash size = 2048kbytes
- Info : flash mode : dual-bank
- Info : device idcode = 0x20016482 (STM32U57/U58xx - Rev X : 0x2001)
- Info : TZEN = 0 : TrustZone disabled by option bytes
- Info : RDP level 0 (0xAA)
- Info : OTP size is 512 bytes, base address is 0x0bfa0000
- Info : New GDB Connection: 1, Target STM32U585AIIx.cpu, state: halted
- O.K.
- O.K.:0xE00FEFD0
- Info : accepting 'gdb' connection on tcp/3333
- target halted due to debug-request, current mode: Thread
- xPSR: 0xf9000000 pc: 0x08001b80 msp: 0x200c0000
- Info : New GDB Connection: 2, Target STM32U585AIIx.cpu, state: halted
- target halted due to debug-request, current mode: Thread
- xPSR: 0xf9000000 pc: 0x08001b80 msp: 0x200c0000
- Info : Padding image section 0 at 0x0818b608 with 8 bytes (bank write end alignment)
- target halted due to debug-request, current mode: Thread
- xPSR: 0xf9000000 pc: 0x08001b80 msp: 0x200c0000
- Info : dropped 'gdb' connection
- Info : dropped 'gdb' connection
- shutdown command invoked
然后应用程序停止,调用堆栈如下:
- Thread #1 (Suspended : User Request)
- Reset_Handler() at startup_stm32u585aiix.s:62 0x8001b80
当我恢复应用程序时,它会持续几秒钟,然后 STM32CubeIDE 表示应用程序已终止,而 CN8 USB 连接器旁边的 LED 灯一直闪烁红色和绿色。
我在这里做错了什么?
0