当前位置:   article > 正文

ESP32-S3 在Platformio实现单步调试_platformio esp32s3

platformio esp32s3

大家好,笔者最近在使用ESP32-S3时,想要在Platformio上实现JTAG的单步调试遇到了很多困难,今天才得以实现,故做此纪录。

在Platformio(下称PIO)上调试时,我们首先需要修改一下platformio.ini的内容

至于具体如何修改这个文件,大家可以参考官方文档,勤用翻译:

Section [env] — PlatformIO latest documentation

笔者这里使用的是ESP32-S3自带的USB口进行JTAG调试(不需要外接J-LINK等JTAG模块),所以只添加了断点初始化设置,否则进入调试会停在奇怪的地方

debug_init_break = tbreak setup

如果大家想使用J-LINK,可能需要加上

debug_tool = jlink

有时候jlink调试速度过快还会出现问题,大家也可以尝试修改调试速度

debug_speed = 500 //单位KHZ

笔者前几天使用jlink时老是提示一大堆错误,以下是错误代码:
 

  1. Licensed under GNU GPL v2
  2. For bug reports, read
  3. http://openocd.org/doc/doxygen/bugs.html
  4. adapter speed: 5000 kHz
  5. Info : tcl server disabled
  6. Info : telnet server disabled
  7. Info : J-Link V9 compiled Mar 2 2018 17:07:57
  8. Info : Hardware version: 9.40
  9. Info : VTarget = 3.296 V
  10. Info : clock speed 5000 kHz
  11. Error: JTAG scan chain interrogation failed: all zeroes
  12. Error: Check JTAG interface, timings, target power, etc.
  13. Error: Trying to use configured scan chain anyway...
  14. Error: esp32s3.cpu0: IR capture error; saw 0x00 not 0x01
  15. Warn : Bypassing JTAG setup events due to errors
  16. Error: Unexpected OCD_ID = 00000000
  17. Warn : target esp32s3.cpu0 examination failed
  18. Error: Unexpected OCD_ID = 00000000
  19. Warn : target esp32s3.cpu1 examination failed
  20. Info : starting gdb server for esp32s3.cpu0 on pipe
  21. Info : accepting 'gdb' connection from pipe
  22. Error: Target not examined yet
  23. Error executing event gdb-attach on target esp32s3.cpu0:
  24. Warn : No symbols for FreeRTOS!
  25. Error: Target not halted
  26. Error: auto_probe failed
  27. Error: Connect failed. Consider setting up a gdb-attach event for the target to prepare target for GDB connect, or use 'gdb_memory_map disable'.
  28. Error: attempted 'gdb' connection rejected
  29. Error: error during select: Unknown error
  30. .pioinit:11: Error in sourced command file:
  31. Remote communication error. Target disconnected.: Success.

笔者上网查询,认为是Openocd没有正确配置的问题,并且也更新了ESP32-S3官方jtag驱动

首先是Openocd的配置:

笔者在cmd中输入openocd --version,提示没有openocd,应该是环境变量没有配置。我们找到PIO安装时自带的oepnocd,一般来说路径为:

C:\Users\用户名\.platformio\packages\tool-openocd-esp32\bin

然后我们在系统环境变量,Path中添加这个路径,之后重启就可以在pio中使用了

接着是JTAG驱动:

我们先卸载原本JTAG驱动,之后管理员权限运行PowerShell,在其中运行:
 

Invoke-WebRequest 'https://dl.espressif.com/dl/idf-env/idf-env.exe' -OutFile .\idf-env.exe; .\idf-env.exe driver install --espressif

重启你的电脑

最后在PIO中F5就可以开始你的调试了,希望可以帮助大家解决问题!

参考文献:
JTAG 调试 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 (espressif.com)

Section [env] — PlatformIO latest documentation

Configure ESP32-S3 Built-in JTAG Interface - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 (espressif.com)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/875926
推荐阅读
  

闽ICP备14008679号