You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下OpenOCD无法绑定4444 telnet端口且无进程占用问题求助

Windows 10 MINGW64环境OpenOCD调试RP2040端口绑定失败解决方法

问题场景

在Windows 10的MINGW64环境中使用OpenOCD,指定interface/picoprobe.cfg、target/rp2040.cfg配置配合GDB调试RP2040芯片,系统重启后频繁出现端口绑定类报错:

  • 初始报错为6666 TCL端口绑定失败,通过PowerShell查找并终止占用6666端口的进程后可临时恢复
  • 处理完6666端口问题后再次启动OpenOCD,出现4444 Telnet端口绑定失败报错,但使用Get-NetTCPConnection、netstat -ab排查均找不到占用4444端口的进程

解决步骤

1. 先清理残留僵尸OpenOCD进程

OpenOCD异常退出时经常会残留僵尸进程,这类进程持有的端口句柄不会被常规端口查询工具识别,直接全量终止所有OpenOCD进程即可排除这类影响:
以管理员身份打开PowerShell,执行以下命令:

Get-Process openocd -ErrorAction SilentlyContinue | Stop-Process -Force

等待2秒后重新尝试启动OpenOCD,如果仍然报4444端口绑定失败,执行下一步排查。

2. 修复Hyper-V/WSL2端口预留冲突

这是Windows 10开启Hyper-V、WSL2、虚拟机平台功能后的高发问题:系统重启后会随机将一批常用端口划入Hyper-V专属预留范围,哪怕没有任何进程实际占用端口,普通用户态程序也没有绑定权限,常规端口查询工具无法查到这类预留记录。
首先管理员身份打开PowerShell执行以下命令,查看当前TCP端口排除列表:

netsh interface ipv4 show excludedportrange protocol=tcp

如果输出的端口段范围包含4444,即可确认是该问题,有两种处理方案:

  • 快速临时方案:启动OpenOCD时手动指定Telnet端口到未被预留的高位端口,绕开冲突段,不影响GDB正常调试(GDB默认连接3333端口,不受Telnet端口改动影响),启动命令示例:
/path/to/openocd/src/openocd.exe -s /path/to/openocd/tcl -f interface/picoprobe.cfg -f target/rp2040.cfg -c "telnet_port 44444"

后续如果需要通过Telnet连接OpenOCD控制台,对应使用修改后的端口即可。

  • 永久修复方案:将OpenOCD常用的3333、4444、6666端口固定为手动预留,避免系统重启后被Hyper-V随机划入预留段:
    1. 以管理员身份打开命令提示符,执行命令临时关闭Hyper-V功能,执行完成后重启电脑:
    dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
    
    1. 重启后再次打开管理员身份的命令提示符,重新设置系统动态TCP端口范围,同时手动预留OpenOCD需要的三个端口:
    netsh int ipv4 set dynamic tcp start=49152 num=16384
    netsh int ipv4 add excludedportrange protocol=tcp startport=3333 numberofports=1
    netsh int ipv4 add excludedportrange protocol=tcp startport=4444 numberofports=1
    netsh int ipv4 add excludedportrange protocol=tcp startport=6666 numberofports=1
    
    1. 执行命令重新开启Hyper-V功能,执行完成后再次重启电脑即可:
    dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
    

3. 兼容MINGW64环境异常

如果以上两步操作后问题仍然存在,大概率是MINGW64运行时的socket兼容问题:

  • 不要在MINGW64终端内启动OpenOCD,直接在原生CMD或PowerShell中执行OpenOCD启动命令,如果原生环境下端口可以正常绑定,升级MINGW64到最新版本即可修复,也可以保持在原生终端启动OpenOCD、MINGW64终端内只运行GDB连接的使用方式,不影响调试流程。

内容的提问来源于stack exchange,提问作者sdbbs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:48:26