同步操作将从 wu-donghuan/wireless-esp32-dap 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
只需要合宙9.9的ESP32C3简约版即可开始无线调试!通过USBIP协议栈和CMSIS-DAP协议栈实现。
👉在5米范围内,擦除并烧写100kb大小的固件(Hex固件) :
对于Keil用户,我们现在支持elaphureLink。无需usbip即可开始您的无线调试之旅!
支持的ESP芯片
支持的调试接口:
支持的USB通信协议:
支持的调试跟踪器:
其它
固件默认的WIFI SSID是DAP
或者OTA
,密码是12345678
。
你可以在wifi_configuration.h文件中添加多个无线接入点。
你还可以在上面的配置文件中修改IP地址(但是我们更推荐你通过在路由器上绑定静态IP地址)。
固件中已经内置了一个mDNS服务。你可以通过dap.local
的地址访问到设备。
SWD | |
---|---|
SWCLK | GPIO6 |
SWDIO | GPIO7 |
TVCC | 3V3 |
GND | GND |
JTAG | |
---|---|
TCK | GPIO6 |
TMS | GPIO7 |
TDI | GPIO9 |
TDO | GPIO8 |
nTRST (optional) | GPIO4 |
nRESET | GPIO5 |
TVCC | 3V3 |
GND | GND |
Other | |
---|---|
LED_WIFI_STATUS | GPIO12 |
Tx | GPIO19 |
Rx | GPIO18 |
Rx和Tx用于TCP转发的串口,默认不开启该功能。
硬件使用合宙9.9的ESP32-C3,通过制作一个底板的方式将引脚引出,详细见文件夹:1.Hardware
你也可以去以下开源平台查看工程:https://oshwhub.com/badboyhuan/wu-xian-daplink-di-zuo_copy
获取esp-idf
目前,请考虑使用esp-idf v4.4.2: https://github.com/espressif/esp-idf/releases/tag/v4.4.2
编译和烧写
使用ESP-IDF编译系统进行构建。 更多的信息,请见:Build System
下面例子展示了在Windows上完成这些任务的一种可行方法:
# 编译
idf.py build
# 烧写
idf.py -p /dev/ttyS5 flash
位于项目根目录的
idf.py
脚本仅适用于较老的ESP8266设备,请不要在ESP32设备上使用。
我们还提供了预编译固件用于快速评估。详见 wireless-esp32-dap 发行版 - Gitee.com
获得的.ZIP文件解压,放在一个文件夹里,并在系统的环境变量里添加位置。
安装 USB/IP 测试证书:
driver/usbip_test.pfx
在命令行输入:(开启系统测试模式)
bcdedit.exe /set TESTSIGNING ON
重新启动系统以应用 重启后会出现下图:
在管理员身份下运行CMD输入如下命令:
usbip.exe install
启动ESP32-C3并且把ESP32-C3连接到同一个WIFI下。
通过USBIP连接ESP32:
# 👉 推荐HID模式或者WinUSB模式。用于usbip-win 0.3.6 版本。
usbip.exe attach -r <usbip server ip> -b 1-1
如果一切顺利,你应该看到你的设备被连接,如下图所示。
下面我们用keil MDK来测试:
注意,本项目受限于周围的网络环境。如果你在电脑上使用热点进行连接,你可以尝试使用wireshark等工具对网络连接进行分析。当调试闲置时,线路上应保持静默,而正常工作时一般不会发生太多的丢包。
一些局域网广播数据包可能会造成严重影响,这些包可能由这些应用发出:
对于ESP32, 这无异于UDP洪水攻击...😰
周围的射频环境同样会造成影响,此外距离、网卡性能等也可能是需要考虑的。
单独使用ESP32通用IO时的最大翻转速率只有大概2MHz。当你选择最大时钟时,我们需要采取以下操作:
clock < 2Mhz
:与你选择的时钟速度类似。2MHz <= clock < 10MHz
:使用最快的纯IO速度。clock >= 10MHz
:使用40MHz时钟的SPI加速。请注意,这个项目最重要的速度制约因素仍然是TCP连接速度。
这个项目最初是为在Keil上运行而设计的,但现在你也可以在OpenOCD上通过它来烧录程序。 注意,如果你想使用40MHz的SPI加速器,你需要在连接目标设备后指定速度,否则会在开始时失败。
# 在使用flash指令前需要先运行:
> adapter speed 10000
> halt
> flash write_image [erase] [unlock] filename [offset] [type]
Keil的操作时序与OpenOCD的有些不同。例如,OpenOCD在读取 "IDCODE "寄存器之前缺少SWD线复位序列。
当这个项目被更新时,你可以通过无线方式更新固件。
请访问以下网站了解OTA操作。在线OTA
对于大多数ESP32设备,你不需要关心闪存的大小。然而,闪存大小设置不当可能会导致OTA失败。在这种情况下,请用idf.py menuconfig
改变闪存大小,或者修改sdkconfig
:
# 选择一个flash大小
CONFIG_ESPTOOLPY_FLASHSIZE_1MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
# 然后设置flash大小
CONFIG_ESPTOOLPY_FLASHSIZE="2MB"
如果闪存大小为2MB,sdkconfig文件会看起来像这样:
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y
CONFIG_ESPTOOLPY_FLASHSIZE="2MB"
可以用esptool.py工具检查你使用的ESP设备闪存大小:
esptool.py -p (PORT) flash_id
该功能在TCP和Uart之间提供了一个桥梁:
发送数据 -> TCP -> Uart TX -> 外部设备
接收数据 <- TCP <- Uart Rx <- 外部设备
当TCP连接建立后,ESP芯片将尝试解决首次发送的文本。当文本是一个有效的波特率时,转发器就会切换到该波特率。例如,发送ASCII文本115200
会将波特率切换为115200。
由于性能原因,该功能默认不启用。你可以修改 wifi_configuration.h 来打开它。
请查看其他分支以了解最新的开发进展。我们欢迎任何形式的贡献,包括但不限于新功能、关于电路的想法和文档。
如果你有什么想法,欢迎在下面提出:
归功于以下项目、人员和组织。
- https://github.com/thevoidnn/esp8266-wifi-cmsis-dap for adapter firmware based on CMSIS-DAP v1.0
- https://github.com/ARM-software/CMSIS_5 for CMSIS
- https://github.com/cezanne/usbip-win for usbip windows
- 9.9元自制WIFI无线DAPLINK调试器 – 晨旭的博客~ (chenxublog.com)for 9.9daplink
- windowsair/wireless-esp8266-dap: CMSIS-DAP compatible wireless debugger for various ESP chips such as ESP8266, ESP32. Optional 40MHz SPI acceleration, etc. 适配多种ESP芯片的无线调试器 (github.com)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。