您好,欢迎来到星星旅游。
搜索
您的当前位置:首页WSL2下使用openocd连接外部调试器开发STM32

WSL2下使用openocd连接外部调试器开发STM32

来源:星星旅游

参考:


        在linux下搭建STM32的开发环境,通常会用到 openocd 去连接到外部的调试器,如 J-Link,CMSIS-DAP,再提供网路端口给gdb。但由于现阶段 WSL2 访问外部的 USB 设备会存在不足,且WSL2 默认采用了一个NAT网络,如果想要把 WSL2 中的服务直接暴露出来,就不得不考虑做端口转发等问题。

        但是 WSL2 给我们留了一条后路,那就是允许在 WSL 里执行 .exe 文件。

图1

         关于 openocd 如何去连接外部调试器,详见文首 "参考" 项的 "linux下STM32开发环境的搭建" 一文。按照文中关于 opeocd 去连接外部调试器的操作,实验使用图1中的 openocd.exe 是可以正常连接到外部调试器,我这里用的是 CMSIS-DAP,如图2。

        图2

         但是,在 WSL2 中使用 gdb 去连接图2所示的 3333 端口时,会连接不上,提示超时失败,见图3。关于 gdb 的简单介绍和使用,详见文首 "参考" 项的 "linux下STM32开发环境的搭建" 一文。

图3 

         见图3,这里为什么是 172.31.192.1,这个得在 WSL2 下查看 /etc/resolv.conf 文件,里面的 nameserver 变量记载的就是 WSL2 的 DNS 客户机配置 IP。这个也是我们需要在 gdb 连接 openocd 提供端口时所使用到的 IP,见图4。

图4 

         回到图3,解决 WSL2 下 gdb 因连接超时连接不上的办法可以详见文首 "参考" 项的 "Connect gdb to ip instead of localhost to debug from WSL2"。这里只提取并记录下解决办法,如图5,在使用openocd时加上 -c "bindto 0.0.0.0"。

图5

         再按照图3所示操作使用 gdb 去连接目标板就可以正常连接,且实验调试正常,见图6。

图6 

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务