概述
按照官网文档,主要有ESP-IDF安装和IDE安装配置两个部分。IDE有两种选择:VSCode和Eclipse,考虑到使用人数、通用性和相关资源,选择VSCode。
ESP-IDF安装
按照乐鑫ESP-IDF官网文档,在官网链接下载V5.1.1离线安装包,安装到指定位置即可。
IDE安装与配置
VSCode安装
当前使用的版本未VS Code V1.82.2,下载并安装到指定位置即可。
ESP-IDF插件安装
安装以下插件。
- Espressif IDF,v1.6.4。
- Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code。
ESP-IDF插件配置
安装完Espressif IDF插件后,需要配置插件。由于在配置插件过程中,会用pip安装所需的Python包,默认的pip源为国外源,速度很慢,为避免卡死,需要对pip源进行修改,配置为国内源,操作如下。
- 运行ESP-IDF 5.1 PowerShell,切换到ESP-IDF安装的Python环境路径,例如:C:\Espressif\python_env\idf5.1_py3.11_env\Scripts>。
- 执行:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
。
重启VSCode,按F1,找到ESP-IDF:配置ESP-IDF插件,点击运行,完成后,会显示以下界面。
选最后一项:USE EXISTING SETUP,会自动找到已经安装的ESP-IDF,点击后会开始配置。
完成后会显示配置成功界面。
配置完成后,在VSCode界面底的状态栏中部会显示ESP-IDF工具条。配置目标芯片、配置SDK、编译、下载等都有相应的按钮。
调试配置
芯片设置
确保驱动程序安装正确。用USB线连接板子USB接口,注意此USB接口是直连芯片的,不是USB转UART的,打开设备管理器,在端口和通用串行总线设备下应该各有一项,如下图。
设置目标调试接口。在ESP-IDF工具条中,单击“ESP-IDF Set Espressif device target”按钮,选择目标芯片,然后选择OpenOCD调试接口,点击包含USB-JTAG的选项,如下图。
设置烧写Flash接口。在ESP-IDF工具条中,单击“ESP-IDF Set flash method”,在弹出的选项中选择UART。
VSCode调试设置
根据乐鑫官网ESP-IDF编程指南中API指南章节下的JTAG调试页面中的链接:使用 VS Code 调试,选择Use the ESP-IDF Debug Adapter的方式,尝试不成功,改为Use Microsoft C/C++ extension to debug的方式,可以正常调试,设置方式如下。
在VSCode资源管理器中,打开.vscode文件夹下的launch.json文件,将其内容修如下。
{
"version": "0.2.0",
"configurations": [
{
"name": "GDB",
"type": "cppdbg",
"request": "launch",
"MIMode": "gdb",
"miDebuggerPath": "${command:espIdf.getXtensaGdb}",
"program": "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
"windows": {
"program": "${workspaceFolder}\\build\\${command:espIdf.getProjectName}.elf"
},
"cwd": "${workspaceFolder}",
"environment": [{ "name": "PATH", "value": "${config:idf.customExtraPaths}" }],
"setupCommands": [
{ "text": "target remote :3333" },
{ "text": "set remote hardware-watchpoint-limit 2"},
{ "text": "mon reset halt" },
{ "text": "thb app_main" },
{ "text": "flushregs" }
],
"externalConsole": false,
"logging": {
"engineLogging": true
}
}
]
}
项目与编译
新建ESP-IDF项目
按F1,选择ESP-IDF:新建项目,会显示新建项目界面,在此界面中输入项目名称和位置。
然后选择项目模板,这些模板就是ESP-IDF带的例子,可以根据需要选择一个,例如hello_world,就可以建立一个新项目。
未定义标识符问题
如果以hello_world为模板新建项目,可以正常编译,编译后,在main文件中,会出现2个“未定义标识符XXX”错误,原因是这些标识符是在编译后生成的头文件中定义的,需要在VSCode的编译配置和IntelliSense 修改文件c_cpp_properties.json中设置compileCommands,插入:
"compileCommands": "${workspaceFolder}/build/compile_commands.json",
如下图。
打开项目
通过“文件”菜单,打开项目所在文件夹即可。
调试代码
-
运行OpenOCD服务器
将电路板通过与芯片直连的USB接口连接电脑,单击ESP-IDF工具条中靠右侧的“OpenOCD Server”按钮,在弹出的选项中单击“Start OpenOCD”,OpenOCD服务器启动后,ESP-IDF工具条会显示状态,如下图。
- 编译下载
通过ESP-IDF工具条上相应的按钮,编译下载代码。 -
开始调试
代码中设置断点,单击VSCode左侧栏的“运行和调试”按钮,在调试界面中单击“运行”按钮,调试开始后,光标会停在设置的第一个断点处,并显示调试工具条,如下图。