1. 乐鑫ESP-IDF安装
按照乐鑫ESP-IDF官网文档,在https://dl.espressif.cn/dl/esp-idf/下载V5.1.1离线安装包,安装到指定位置即可。
2. IDE安装
2.1 ESP-IDF插件安装
IDE选择VSCode。先安装VSCode V1.82.2,然后安装所需插件。
(1)Espressif IDF,v1.6.4。
(2)Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code。
2.2 ESP-IDF插件配置
安装完Espressif IDF插件后,配置插件。由于在配置插件过程中,会用pip安装所需的Python包,默认的pip源为国外源,速度很慢,为避免卡死,需要对pip源进行修改,配置为国内源,操作如下。
(1)运行ESP-IDF 5.1 PowerShell,
(2)切换到ESP-IDF安装的Python环境路径,例如:C:\Espressif\python_env\idf5.1_py3.11_env\Scripts>
(3)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、编译、下载等都有相应的按钮。
3 调试配置
3.1 芯片设置
确保驱动程序安装正确。用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。
3.2 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
}
}
]
}
4. 项目与编译
4.1 新建ESP-IDF项目
按F1,选择ESP-IDF:新建项目,会显示新建项目界面,在此界面中输入项目名称和位置。
然后选择项目模板,这些模板就是ESP-IDF带的例子,可以根据需要选择一个,例如hello_world,就可以建立一个新项目。
4.2 未定义标识符问题
如果以hello_world为模板新建项目,可以正常编译,编译后,在main文件中,会出现2个“未定义标识符XXX”错误,原因是这些标识符是在编译后生成的头文件中定义的,需要在VSCode的编译配置和IntelliSense 设置文件c_cpp_properties.json中设置compileCommands,如下:
"compileCommands": "${workspaceFolder}/build/compile_commands.json",
4.3 打开项目
通过“文件”菜单,打开项目所在文件夹即可。
4.4 调试代码
(1)运行OpenOCD服务器
将电路板通过与芯片直连的USB接口连接电脑,单击ESP-IDF工具条中靠右侧的“OpenOCD Server”按钮,在弹出的选项中单击“Start OpenOCD”,OpenOCD服务器启动后,ESP-IDF工具条会显示状态,如下图。
(2)编译下载
通过ESP-IDF工具条上响应的按钮,编译下载代码。
(3)开始调试
在代码中设置断点,单击VSCode左侧栏的“运行和调试”按钮,在调试界面中单击“运行”按钮,调试开始后,光标会停在设置的第一个断点处,并显示调试工具条,如下图。