6203|1

111

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

ESP32S3 ubuntu+vscode环境搭建及使用内部USB-JTAG(builtin)调试程序 [复制链接]

 

(一)环境搭建

ESP32系列开发环境部署难度一直为人所诟病,首当其冲的是C站上各种各样的坑人教程,其中大部分是抄袭极其老旧的教程,已经跟不上ESP系列库快速的发展步伐。

要论哪里有靠谱的教程,当属ESP的官方wiki:Linux 和 macOS 平台工具链的标准设置

在linux下安装和开发都比windows有优势的多,首先是工具链更好部署、另外编译速度也明显比windows平台更快。

 

1、首先安装依赖项

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

 

2-从github获取idf,虽然可以走其他渠道,但最终会拉子模块,拉取还是会指向github。因为众所周知的问题,经常会在拉取过程断开连接。在我部署环境的时候还是比赛刚开始的5月份,当时可以使用镜像站拉取(使用hub.fastgit.xyz替换下面的github.com),但现在这个镜像站也G了,暂时也没有其他比较好的方法,只能自己科学地冲浪了。

mkdir -p ~/esp
cd ~/esp
git clone -b v4.4.2 --recursive https://github.com/espressif/esp-idf.git

 

3-安装esp tool:

这一步会设计从github拉取 esp tool工具文件,可以使用乐鑫的官网源替换:

export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"

另外还会从国外网站拉取pip相关内容,也容易导致崩溃,可以重定向pip3相关项目到清华源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装:

./install.sh

 

4-部署环境设置PATH这不可以不用,因为我们使用的是 vscode,vscode内置定向工具,不需要为我们系统额外增加一堆路径

 

5-在vscode扩展搜索esp idf,注意不是platform io

安装后敲F1,输入IDF EXTENSION,选第一个:

选择第二项 adventure,在第三项和第四项分别输入刚才下载idf的地址和esp tool的地址:

 

6-测试

在idf安装目录下的example下随便拷一个例程出来,选择esp32s3,然后点编译:

出现如下则说明编译通过,环境没有问题:

 

7-完善代码跳转

创建c_cpp_properties.json文件(在.vscode文件夹下),输入类似如下配置:

    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                // "${workspaceFolder}/../../mb_example_common/include",
                "${workspaceFolder}/main/**",
                "/home/tinnu/software/esp/idf_git5/esp-idf/components/**",
                "/home/tinnu/software/esp/idf_git5/esp-idf/examples/protocols/modbus/mb_example_common/include/**",
                "/home/tinnu/software/esp/idf_git5/esp-idf/examples/common_components/protocol_examples_common/include/**",
                "/home/tinnu/software/esp/idf_git5/esp-idf/components/freemodbus/common/include/**",
                "/home/tinnu/software/esp/idf_git5/esp-idf/components/freertos/include/freertos/**",
                "${workspaceFolder}/build/config/**"
            ],
            "defines": ["CONFIG_EXAMPLE_IPV4", "CONFIG_EXAMPLE_IPV4_ONLY"],
            "compilerPath": "/home/tinnu/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/riscv32-esp-elf-gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],

即可进行跳转查阅代码。

 

 

8-下载

下载有两种方法,一个是通过串口,或者通过内部JTAG。

串口方法不再多提,比较繁琐的是JTAG方法。

首先我们手动查看ESP TOOL安装目录下有没有该文件:

ls ~/.espressif/tools/openocd-esp32/v0.11.0-esp32-20220411/openocd-esp32/share/openocd/scripts/board/esp32s3-builtin.cfg

这个是openocd的脚本文件,里面有esp32s3相关参数,类似的脚本还有:

esp32s3-bridge.cfg     esp32s3-ftdi.cfg

第一个是走esp bridge技术,通过一个ESP32S3调试另一个ESP32S3用的,而后面一个则是ESP32专用的FTDI芯片做的调试器。

我们所使用的esp32s3-builtin.cfg脚本是走芯片上集成的黑科技USB-JTAG接口,每个芯片内部集成JTAG,非常酷炫。

如图绿色圈:

 

在确认文件存在后,新建 settings.json 文件(在.vscode文件夹下),加入如下配置


    "idf.adapterTargetName": "esp32s3",
    "idf.flashType": "JTAG",
    "idf.openOcdConfigs": [
        "board/esp32s3-builtin.cfg"
    ],
    "idf.port": "/dev/ttyACM0",

点击右下角的openocd server。

启动后选择JTAG,点击flash:

 

9-调试

调试需要在.vscode下新建launch.json文件,加入如下配置:

            "miDebuggerServerAddress": "127.0.0.1:3333",//目标板的ip地址和端口
            "program": "${workspaceRoot}/build/xxx.elf",
            "miDebuggerPath": "/home/dds/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/xtensa-esp32s3-elf-gdb",

然后点击F5就可以愉快地断点调试,不过最好不要超过两个断点,打了两个断点之后就不要步进了:

甚至可以启动条件断点。

 

另外不知道是不是版本问题,对esp32s3的复位比较麻烦,经常开启调试之后程序不是重头启动的,这时候需要先暂停程序运行,然后 DEBUG CONSOLE执行:

-exec mon reset halt

 

最新回复

学习了,编译太慢了   详情 回复 发表于 2022-10-31 09:29
点赞 关注
 
 

回复
举报

1239

帖子

66

TA的资源

纯净的硅(中级)

沙发
 

学习了,编译太慢了

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表