二、开发环境使用usbip连接ESP8266 DapLink调试器三、把ESP8266 DapLink调试器变成板载调试器灵动微电子 EVB-L0136 开发板上提供了SWD调试接口,就是下图液晶屏右边的那个接口:如果手头有CMSIS-DAP的同学,可以很方便的连接使用:BUT,这么好的一块板子,没有自带调试器,让很多新进的同学有点手足无措。虽然,如果有其他支持该接口协议的板子,可以把线飞过来,但是终究不方便。经过一番了解,因为CMSIS-DAP是一个开放的协议,所以有超级超级多的第三方制作的调试器,淘宝上有不少。当然,也有很多大佬,基于此提供了开源的DIY方案,所以有很多基于ESP8266、ESP32、STM32F103、GD32等的调试器。既然如此,那我们也可以找依照适合自己手头设备的的方案,自己DIY一个。我手头刚好有ESP8266和ESP32-C3的小板,用来DIY再合适不过了:左边是ESP8266-01,最最最基础廉价的一款。右边的是DFRobot的ESP32-C3,超级小巧的一款。直接用Arduino IDE编译的版本:https://github.com/thevoidnn/esp8266-wifi-cmsis-dap用ESP-IDF编译的版本:https://github.com/windowsair/wireless-esp8266-dap这这两种方案,都是把ESP8266/ESP32化身为一个WiFI
CMSIS-DAPLink,然后在装有Keil或者openocd的开发环境上,通过ip连接过去进行下载和调试。下面,就ESP8266-01、ESP32-C3两块开发板DIY进行示范。这个版本,是专门针对ESP8266的,头文件调用也写死了也许有人可以改造一下支持ESP32的板子,不过我没有试过。基础的调试下载功能,只需要连接上灵动微电子 EVB-L0136 开发板调试接口的SWDIO和SWCLK:我这个ESP8266-01上,刚好有GPIO0、GPIO2口是空出来的,可以使用。如果你有其他版本的ESP8266,引脚足够,那么SWD接口的nRST引脚也可以使用起来。然后,从 https://github.com/thevoidnn/esp8266-wifi-cmsis-dap 下载固件,下载完成后,使用Arduino
IDE打开。如果你的Arduino IDE没有进行过ESP8266的开发,那么需要先添加开发板,否则可以跳过1、21.
在设置中添加ESP8266开发板的支持包地址:https://arduino.esp8266.com/stable/package_esp8266com_index.json如果你用的是下面的ESP8266,那么恭喜你,连接很简单,插上USB接口即可:如果你用的是我那样的ESP8266-01,那么就需要USB2TTL来辅助:如果能够编译下载成功,那么工作就完成了大半了,后面只需要做一下简单设置即可。将上述文件中的ssid和pass修改为你所在环境对应的,注意仅支持2.4G WiFi,不支持5G WiFi。默认的代码,在WiFi连接后,没有输出ip,所以我们添加一点点代码,输出IP信息,方便查看:Serial.print("IP adrress: ");
Serial.println(WiFi.localIP());
6. 再次编译下载,并通过Arduino IDE的串口调试器,查看启动情况:通过上述输出,可以看到ESP8266成功联网,且IP地址为192.168.1.67,并启动了DAP服务。当然,也可以在WiFi路由器中,查看并绑定起IP地址:上述Pin接口,通常情况下不用修改,除非你知道自己在干什么。一般情况下,只需要SWDIO、SWCLK即可,如果有空余的接口,那么nRESET也可以用上,这样下载代码后,就不用按板子上的RST重启。8. 连接灵动微电子 EVB-L0136 开发板:在测试正常以前,ESP8266还需要连接在下载器或者USB2TTL上,方便查看是否有问题。测试正常以后,就可以不用挂下载器或者USB2TTL,直接连在灵动微电子 EVB-L0136
开发板即可,此时可以使用开发板为ESP8266供电,非常方便。通过上述步骤,我们就已经在ESP8266上面,完成了DapLink的DIY工作了。二、开发环境使用usbip连接ESP8266 DapLink调试器:之前说过,是实现了一个WiFI CMSIS-DAPLink,那么就需要工具,将其挂接到开发环境所在的电脑上,使得Keil能够识别。如果使用openocd之类的进行下载和调试,则直接配置连接到其ip即可。下面主要说Keil中的使用,这借助usbip工具即可。https://github.com/cezanne/usbip-winLinux版本的,可以使用系统自带的包管理面命进行安装,如sudo apt-get install usbip。因为后续主要说明Keil联调,所以以下的步骤为Windows下面的操作。1. 首先下载usbip-win的发布版本,附件包:(点击阅读原文下载)可以在usbip_test.pfx鼠标右键再选择安装,也可以直接点击进行安装:(1) 安装驱动之前,先要启动系统的测试证书签名。用管理员权限打开cmd.exe黑窗口,然后执行命令:bcdedit.exe /set TESTSIGNING ON
执行成功后,需要重启操作系统,才能进行后面的步骤。再次使用管理员权限打开cmd.exe黑窗口,并执行下面的命令:usbip list -r 192.168.1.67
usbip addtch -r 192.168.1.67 -b 1-1
usbip list -l
三条命令都执行成功,1、3中将会出现一致的设备信息。同时,执行命令时,在Arduino IDE的串口调试器中,也会有对应的信息显示:(1) 执行usbip list -r 192.168.1.67时:(2).执行usbip addtch -r 192.168.1.67 -b 1-1时:上述三条命令成功执行后,就可以前往Keil中,进行配置了。6. Keil中使用ESP8266提供的DapLink:(1) 使用keil打开官方提供的gpio_basic例程,然后设置调试器:初次使用的时候,可能会出现Error信息,这说明调试器连接不正确。最终,Keil调试器中,将出现如下的画面,表示大功告成:初次使用的时候,可能会出现上面的错误,此时,把板子上的RST按键按一下即可。如果使用的是没有连接nRESET版本的调试器的话,那么下载成功后,需要手动按一下板子上的RST按键,就能正常运行新的固件了:如果是不带nRESET连接的调试器,此时需要再按一下RST按键,就会继续运行了:在适当的位置打上断点,结合途中(1)所在位置的按钮,就能进行调试了。三、把ESP8266 DapLink调试器变成板载调试器:也就是用板载的调试器接口上的VDD,给ESP8266 进行供电即可。就这样,不用额外的接线,只需要给板子供电,就能进行下载和调试了。https://github.com/windowsair/wireless-esp8266-dap这个版本的,不仅支持ESP8266,还支持ESP32、ESP32-C3,除了固件的编译方法不同外,其他的使用方法一样,都需要靠usbip来进行挂载连接。其使用的是乐鑫官方的ESP-IDF环境进行开发编译,建议在Linux、macOS、WSL2环境使用。如果没有使用过,那么建议用Arduino IDE编译的方式吧。因为这个方案,我使用的是ESP32-C3,所以需要安装对应的编译工具链:cd ~/esp/esp-idf
./install.sh esp32c3
wireless-esp8266-dap有一点更优秀的是,能够配置多组WiFi连接信息,这样子方便你在不同的WiFi环境中使用。3. 编译wireless-esp8266-dap并烧录运行:cd wireless-esp8266-dap
. ~/esp/env.sh
idf.py set-target esp32c3
idf.py build
idf.py flash
idf.py monitor
idf.py monitor上述命令,表示使用esp-idf 环境,然后设置开发板为esp32-c3,然后编译、烧录、并启用监控。wireless-esp8266-dap还有一点更优秀的是,他能提供一个mDNS名称,直接使用dap.local就能访问,不用专门查看ip地址了。这样的话,ip地址再怎么变化,我们都不怕,记住dap.local就成。4. 连接灵动微电子 EVB-L0136 开发板:从上可以看出,其能支持ESP8266、ESP32、ESP32-C3,这是其又要优秀的一点了。操作的时候,esp-idf monitor调试窗口会显示:usbip attach -r dap.local -b 1-1
操作的时候,esp-idf monitor调试窗口会显示:(1) 在调试器中选择CMSIS-DAP Debugger:注意红框的位置,可以选择1MHz、2MHz、5MHz,如果选择10MHz,就会通信失败,具体如下:用样的如果调试不正常,先退出调试,按一下RST再来调试即可。wireless-esp8266-dap还有一点更优秀的是,能够使用一个图形界面的连接工具,不需要usbip那样在命令行进行操作了。这个工具,就是elaphureLink,其官网为:https://github.com/windowsair/elaphureLink注意:elaphureLink和usbip不能同时使用,否则会出现问题。点击Install后,会提示找到的Keil地址,如果不对,可以修改:安装驱动后,要重启Keil,一定要重启Keil,然后设置调试器:需要注意,应该选择elaphureLink Debugger。Max Clock也一样可选择1、2、5MHz,不能使用10MHz。作者:HonestQiao, 来源:面包板社区
链接:https://mbb.eet-china.com/forum/topic/123571_1_1.html
版权声明:本文为博主原创,未经本人允许,禁止转载!