本帖最后由 正点原子运营 于 2025-12-3 10:02 编辑
第四章 开发环境搭建
1)实验平台:正点原子DNESP32P4开发板
2)章节摘自【正点原子】ESP32-P4开发指南— V1.0
3)购买链接:https://detail.tmall.com/item.htm?id=873309579825
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/esp32/ATK-DNESP32P4.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子DNESP32S3开发板技术交流群:132780729
在上一章中,我们已经初步了解了 ESP32 系列芯片(如 ESP32-P4和 ESP-IDF开发框架的相关知识)。接下来,我们将进入实践部分,逐步搭建适合 ESP32-P4 开发的工作环境。无论您是初学者,还是有一定开发经验,本章节都会帮助您从搭建环境、命令式开发再到IDE集成开发环境搭建,确保顺利开启基于 ESP32-P4 的项目开发。
本章分为如下几个小节:
4.1 搭建ESP-IDF环境
4.2 IDF前端工具
4.3 搭建集成开发环境
4.1 搭建ESP-IDF环境
在前面章节中,笔者已经讲解了ESP32的开发可以在Windows、Linux和Mac系统上进行。本书的开发环境是在Windows平台上搭建的,因此对于Linux和Mac系统的开发环境搭建,读者需要自行查找相关资料。
搭建ESP-IDF环境有两种方式:离线安装和在线安装。在此,笔者强烈推荐使用离线安装包。尽管安装速度可能稍慢,但离线安装能够大幅提高成功率,避免网络问题带来的安装失败风险。相比之下,在线安装包需要稳定的网络连接,如果网络状况不佳,可能会导致安装中断或失败。不过,在线安装的优势在于可以获取最新的ESP-IDF版本,通常适用于芯片发布前的调试阶段。这样,读者可以根据自己的需求选择合适的安装方式。
4.1.1 离线安装ESP-IDF
注意:笔者将 ESP-IDF 安装在 D:\Soft_APP\Espressif 路径下,因此以下示例将基于该路径进行操作说明。
离线安装包可以在 ESP-IDF Windows 安装下载中心(https://dl.espressif.com/dl/esp-idf/)下载,或通过正点原子提供的资料A盘 路径找到。具体路径为:6,软件资料→1. 软件→1,IDF开发工具→esp-idf-tools-setup-offline-5.4.exe,可以获取 v5.4 离线安装包,如下图所示。
图4.1.1.1 下载v5.4离线安装包
注意:本书籍中的所有例程示例均使用此版本的 ESP-IDF。如果使用其他版本编译本书籍中的例程示例时出现错误或效果未能如预期,请务必切换回本书籍推荐的ESP-IDF 版本,以确保所有例程能正常编译和运行。
下载成功后,在安装程序上单击右键选择<以管理员身份运行>运行安装包,如下图所示:
图4.1.1.2 以管理员身份运行安装包
打开安装程序后选择简体中文安装,如下图所示。
图4.1.1.3 选择安装语言
点击“确定”后进入安装许可协议页面,如下图所示。请勾选“我同意此协议”选项,并点击“下一步”。
图4.1.1.4 勾选“我同意此协议”选项
点击下一步后,会跳出安装前系统检查页面,如下图所示。
图4.1.1.5 安装前系统检查
安装程序会检查你当前系统有没有打开“长路径支持”,因为GNU编译器产生的编译文件会有非常深的目录结构,如果不支持长路径,编译可能出现文件不存在,目录不存在等奇怪的错误。这里单击应用修复按钮,可以修复这个问题。在弹出的确认对话框中,选择“是”,开始修复(若上图中的“应用修复”按钮失效,证明系统已经启用长路径功能,我们直接下一步即可)。如下图所示。
图4.1.1.6 启用长路径
如果修复不成功,通常是由于安装软件时未使用管理员权限运行。在这种情况下,可以手动修改注册表来启用长路径支持。具体操作是:按下快捷键“Win + R”打开“运行”对话框,输入“regedit”并按回车进入注册表编辑器。接着,找到HKLM_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled项目,将LongPathsEnabled 的DWORD数值修改为1。这样可以解决长路径问题,确保安装顺利完成。如下图所示。
图4.1.1.7 手动启用长路径
图4.1.1.7 提示修复完成后,点击“下一步”进入配置安装路径,如下图所示。
图4.1.1.8 配置安装路径
安装程序默认的安装位置为 C:\Espressif,但笔者将其安装在 D盘,因为安装过程中可能会占用数十GB的存储空间。因此,建议用户选择其他磁盘分区作为安装路径。注意:安装路径必须为全英文路径,切勿使用任何包含中文字符的路径,否则会导致 ESP-IDF 环境搭建失败。
设置安装路径后,点击 “下一步” 进入 确认安装组件界面。在该界面中,我们选择 “全部安装”,然后再次点击 “下一步”,开始安装ESP-IDF开发环境。
ESP-IDF安装成功后会出现如下图页面。
图4.1.1.9 ESP-IDF安装成功
上图中的选项 1 和 2 用于测试环境安装是否成功,选项 3 则是将 ESP-IDF 工具链加入杀毒软件的排除项,以加快编译速度。我们勾选所有选项后,点击 “Finish” 按钮。此时,桌面会自动弹出两个命令终端图标:“ESP-IDF 5.4 CMD”和“ESP-IDF 5.4 PowerShell”。其中,PowerShell 终端功能更强大,适合执行复杂任务或管理复杂环境的用户;CMD 终端则更适合基础的命令行操作和简单脚本执行。用户可以根据需求和偏好选择使用合适的工具,如下图所示。
图4.1.1.10 PowerShell和CMD终端
上图中,如果两个终端均提示“idf.py build”命令,则初步证明安装成功。在这两个终端下,我们可以采用命令形式进行配置、编译、链接和构建项目,这与在Linux中的开发方式颇为相似。在4.2小节中,将详细讲解ESP-IDF常用的命令。
下图为ESP-IDF安装成功后的文件结构。
图4.1.1.11 espressif工具目录
上图中的文件介绍,笔者已在 3.2 小节中展示过,这里不再详细说明。图中的 frameworks 文件夹保存了我们之前安装的 ESP-IDF 源代码。
为了让系统能够找到和识别ESP-IDF的相关工具和库,从而能够顺利地进行编译、构建和调试ESP32或其他Espressif芯片的项目,我们必须设置ESP-IDF的环境变量,设置方法如下:
按照此过程(此电脑→属性→高级系统→环境变量)打开,如下图所示。
图4.1.1.12 添加IDF_PATH环境变量
如果 ESP-IDF 库安装成功,系统会自动为我们添加 IDF_TOOLS_PATH 和 IDF_COMPONENT_STORAGE_URL 环境变量。安装完成后,系统还会自动安装 Espressif-IDE,这是一款专为乐鑫 SoC 芯片开发的集成开发环境。由于该软件在国内发布时间较短,且国内开发者多倾向于使用 VS Code IDE 进行开发,因此本教程的示例主要基于 VS Code IDE 展开。然而,正点原子也致力于推广 Espressif-IDE,因此我们决定额外编写一份关于 Espressif-IDE 使用的教程,以帮助国内开发者更好地熟悉并使用这一强大的开发工具(请参阅《Espressif-IDE 集成开发环境使用指南》)。
至此,ESP-IDF 离线安装已经完成。接下来,笔者将为大家介绍如何进行 ESP-IDF 的在线安装,有需要的读者请参考接下来的内容。
4.1.2 在线安装ESP-IDF(方法一)
在 VSCode 的 ESP-IDF 插件中,可以通过在线方式安装 ESP-IDF 软件开发库。关于 VSCode 和 ESP-IDF 插件的下载与安装过程,请参考本章节的 4.3 小节。接下来,我们将详细介绍通过 ESP-IDF 插件在线安装 ESP-IDF 软件开发库的具体步骤,流程如下:
1,按下快捷键“F1”或“Ctrl + Shift + P”打开“显示所有命令”界面。然后,在搜索框中输入“Configure ESP-IDF”,并从下拉菜单中选择此选项,进入 ESP-IDF 配置界面,如下图所示。
图4.1.2.1 配置ESP-IDF扩展
回车后,将进入配置 ESP-IDF 插件的界面,如下图所示。
图4.1.2.2 进入ESP-IDF插件配置界面
在上图中,点击 “ADVANCED”选项,然后选择下载服务器和下载版本,如下图所示。
图4.1.2.3 在线安装v5.4版本IDF
2,点击“Configure Tools”选项下载与安装,如下图所示。
图4.1.2.4 ESP-IDF下载与安装
在上图中,完成步骤1至3后,流程顺利运行并成功完成,接下来将进入下图所示的界面。
图4.1.2.5 安装ESP-IDF成功
如上图所示,v5.4版本的ESP-IDF安装已成功完成。此时,您可以在VSCode左下角切换到v5.4版本的ESP-IDF,具体操作如下面的图示所示。
图4.1.2.6 切换IDF版本
3,设置环境变量,如下图所示。
图4.1.2.7 设置IDF环境变量
4.1.3 在线安装ESP-IDF(方法二)
相比离线安装,在线安装 ESP-IDF 更具挑战,主要是因为在线安装依赖于稳定的网络连接,否则可能会导致安装失败。接下来,笔者将手把手教大家如何进行在线安装 ESP-IDF。
首先,我们需要从 GitHub 或 Gitee 平台查找所需的 ESP-IDF 版本。下图展示了在 GitHub 平台上查看 ESP-IDF 分支版本的方法。
图4.1.3.1 查看ESP-IDF版本
在这里,笔者选择了 release/v5.4 分支的 ESP-IDF 版本。接下来,在 Git 终端中输入以下命令,拉取该版本的 ESP-IDF(或者使用国内服务器git clone -b release/v5.4 https://gitee.com/EspressifSystems/esp-idf.git)。
图4.1.3.2 拉取ESP-IDF V5.4版本的源代码
在上图中,笔者将 ESP-IDF 源代码拉取到了 D:\Soft_APP\Espressif\frameworks路径下(离线安装ESP-IDF源代码存储的位置),方便使用多个IDF版本开发。接着,在 Git 终端中输入以下命令,进入 esp-idf 目录。随后,输入以下命令更新 ESP-IDF 源代码中的子模块,如下图所示。
图4.1.3.3 更新子模块
注意:全部子模块必须更新完成,否则在线安装将会失败。在更新子模块的过程中,请确保网络连接稳定,以避免出现中断或错误。
为了让读者避免繁琐的在线SDK下载过程,笔者已经为大家预先下载了v5.4.0和v5.5.0版本的ESP-IDF。您可以在 A盘→6 软件资料→1 软件→4,IDF软件开发工具包目录下找到这两个版本的开发工具包。只需解压缩文件即可免去从GitHub下载的步骤。例如我们将4,IDF软件开发工具包目录下esp-idf_v5.4.0.zip压缩包解压到D:\Soft_APP\ESP_IDF\Espressif\frameworks目录下,该目录是离线IDF成功后生成的目录,它是用来存储IDF软件开发工具包的地方。
然后在ESP-IDF Windows 安装下载中下载网页下下载在线安装工具,用来安装release/v5.4 分支的 ESP-IDF 版本,如下图所示。
图4.1.3.4 下载在线安装工具
以<管理员身份运行>在线安装工具,如下图所示。
图4.1.3.5 运行在线安装工具
进入安装语言页面,这里我们选择“简体中文”,并点击“确定”按钮,如下所示。
图4.1.3.6 选择安装语言
点击“确定”后进入安装许可协议页面,如下图所示。请勾选“我同意此协议”选项,并点击“下一步”。
图4.1.3.7 勾选“我同意此协议”选项
点击下一步后,会跳出安装前系统检查页面,如下图所示。
图4.1.3.8 安装前系统检查
上图中的“应用修复”按钮失效,证明系统已经启用长路径功能,我们直接下一步即可。如下图所示。
图4.1.3.9 下载或使用ESP-IDF
这里我们选择“使用现有的ESP-IDF目录”也就是我们前面下载的release/v5.4版本的Esp-IDF源代码,然后点击“浏览”选项配置ESP-IDF路径。如下图所示。
图4.1.3.10 配置选择现有的ESP-IDF
点击“下一步”进入ESP-IDF Tools工具安装,如下图所示。
图4.1.3.11 ESP-IDF Tools安装路径配置
上图的安装路径与离线安装的Tools路径是一致的。然后点击“下一步”进入选择组件安装页面,如下图所示。
图4.1.3.12 选择安装组件
点击“下一步”按钮,进入准备安装页面,如下图所示。
图4.1.3.13 准备安装
此时,我们点击“安装”按钮,就可以安装release/v5.4版本的ESP-IDF了,如下图所示。
图4.1.3.14 ESP-IDF Tools安装完成
此时点击“完成”按钮,系统自动弹出“ESP-IDF 5.4 CMD”和“ESP-IDF 5.4 PowerShell”终端,如下图所示。
图4.1.3.15 PowerShell和CMD终端
上图中,如果两个终端均提示“idf.py build”命令,则初步证明安装成功。在这两个终端下,我们可以采用命令形式进行配置、编译、链接和构建项目,这与在Linux中的开发方式颇为相似。在4.2小节中,将详细讲解ESP-IDF常用的命令。
4.1.4 安装USB虚拟串口驱动
ESP32-P4的USB串口可以用于程序下载和与ESP监控器的交互。通过USB连接DNESP32P4开发板后,您可以在项目文件夹中执行特定命令,使用像idf.py这样的工具编译并下载程序到开发板上。正点原子的DNESP32P4开发板通过CH343P芯片进行串口信号转换,从而实现与PC的通信。CH343P芯片将ESP32- P4的串口信号转换为USB信号,并通过USB接口连接到PC。
为了在电脑上实现与ESP32-P4的通信,需要安装CH343P芯片的驱动程序。您可以访问沁恒的官方网站(https://www.wch.cn/)下载该驱动程序,或者在6,软件资料→1,软件→CH343P驱动文件夹下找到CH343P的驱动安装程序,如下图所示。
图4.1.4.1 CH343P驱动安装程序
打开CH343P驱动安装程序后,点击安装程序中的“安装”按钮,若提示“驱动安装成功”,则说明CH343P驱动已经安装成功了,如下图所示。
图4.1.4.2 CH343P驱动安装成功
安装完CH343P驱动后,使用跳线帽将正点原子DNESP32P4开发板的底板P6和核心板P3排针的1&3和2&4接上,如下图所示。
图4.1.4.3 连接USB-UART0
接下来,使用USB线将开发板UART接口与PC的USB端口相连接即可。此时,PC端的设备管理器中查看到CH343P虚拟出的串口,如下图所示。
图4.1.4.4 PC端显示的虚拟串口
从上图可以看出,CH343P虚拟出的串口被PC分配了COM60的端口号。这个端口号用于串口调试助手等上位机确定与之通信的串口端。需要注意的是,当CH343P与不同的PC连接,甚至是与同一台PC的不同USB端口连接后,虚拟出的串口被PC分配到的端口号可能是不同的,例如COM4或COM5。读者可以根据设备管理器中端口设备的名称来判断具体是哪个端口号。如果同时连接了多个CH343P系列的芯片,则需要逐个测试端口号。安装完USB虚拟串口驱动后,就可以使用串口调试助手,如MobaXterm软件,与板卡通过串口进行通信了。
4.1.5 如何在PC系统上的CMD和PowerShell终端运行IDF命令
在PC系统上的CMD和PowerShell终端运行IDF(Espressif IoT Development Framework)命令,主要涉及到配置ESP-IDF环境以及使用相应的命令。以下是在CMD和PowerShell中运行IDF命令的详细步骤:
1,打开IDF CMD终端,并输入“echo %path%”命令获取IDF相关路径
图4.1.5.1 获取IDF相关安装路径
上图中,我们把输出的地址直到红色圈圈为止,进行拷贝到path环境变量当中。
2,打开系统环境变量path,然后使用编辑文本的方式添加这些变量值。
图4.1.5.2 添加环境变量
注意:添加环境变量时候,必须首尾添加“;”逗号以表示添加结束。添加完成后,我们就可以在CMD或者PowerShell终端运行IDF命令了。
4.2 IDF前端工具
idf.py 是 ESP-IDF 开发环境中的一个重要命令行工具,用于提供前端界面,帮助开发者轻松管理工程的配置、构建、烧录以及调试等操作。它结合了CMake、Niunja和esptool.py等工具,使开发流程更加便捷和高效。
idf.py 主要工具作用:
1)CMake工具用于配置工程的构建流程,管理构建依赖和生成构建文件。
2)Ninja工具用于实际执行构建操作,快速高效地编译项目。
3)esptool.py工具用于烧录程序到目标芯片,并进行芯片的基本管理操作,如擦除闪存、复位和下载等。
下图为idf.py主要工具操作流程图。
图4.2.1 项目工程的构建、编译和烧录流程
在开发过程中,源代码通常依赖多个库或模块,而 CMake 可以自动分析并管理这些依赖关系。它根据开发者提供的 CMakeLists.txt 配置文件,确定哪些源文件需要编译、哪些库需要链接,确保所有依赖关系正确处理。在 ESP32 开发中,项目可能包含许多组件,CMake 能够智能地处理这些组件的构建顺序。通过 CMake 配置后,CMake 会生成构建文件(如 build.ninja),这些文件定义了如何构建项目。接下来,Ninja 工具执行具体的编译工作,生成最终的可执行文件或二进制等文件。最后,使用 esptool.py 工具将生成的二进制文件烧录到 ESP32 开发板上,确保程序能够运行。
4.2.1 IDF常用命令
1,创建新的工程
- idf.py create-project --path <project name>
复制代码 该命令用于创建一个新的项目目录结构,并将必要的文件和模板复制到指定目录中。其目的是帮助开发者快速设置一个新的 IoT 项目,而无需手动创建所有必要的文件和目录,从而加快项目初始化过程。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:create-project:操作功能为创建工程。
③:--path:工程创建在哪个位置(可选)。
④:<project_name>:创建工程的名称。
2)使用方法
首先,在桌面新建一个名为 test 的文件夹,用来保存新建的工程。然后,打开 ESP-IDF CMD 或 PowerShell 终端,输入以下命令来创建项目工程。
图4.2.1.1 指定路径创建工程
从上图可以看到,在桌面上的test文件夹下创建了一个名为“atk_project”的工程。
2,创建新的组件
- idf.py create-component <component name>
复制代码 该命令用于在当前项目中创建一个新的组件(component)。它会自动生成该组件所需的基本目录结构和文件,包括CMakeLists.txt文件,以及默认的源代码文件和头文件。组件是ESP-IDF项目中重要的模块化单元,通常包含相关功能代码,便于代码的复用和管理。
注意:新的组件一般放置在componen文件夹下。因此,我们需要在项目的根目录下新建一个名为 “components”的文件夹,用来保存我们创建的组件。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:create-component:操作功能为创建新的组件,如LED、KEY等驱动组件。
③:<component name>:创建组件的名称。
2)使用方法
首先,在test项目的根目录下新建一个components文件夹。接着,打开命令终端,进入components文件夹路径,并在该路径下输入以下命令来创建组件,如下图所示。
图4.2.1.2 创建新的组件
在上图中,我们首先利用“cd”命令进入到指定的项目工程路径。随后,在该路径下输入创建组件的命令,即可成功创建组件。led组件的文件结构如图所示。
图4.2.1.3 led组件文件结构
上图中的 led.c 和 led.h 是典型的源代码文件和头文件,分别用于实现和声明与 LED 控制相关的功能。而 CMakeLists.txt 文件的作用是将 led 组件添加到构建系统中,使其能够参与项目的编译和构建。这也是前面笔者讲解的构建文件。
3,选择目标芯片
- idf.py set-target <target>
复制代码 该命令的作用是设置当前项目的目标芯片。默认情况下,新建的项目工程是以 ESP32 系列芯片为模板的。如果你使用的不是 ESP32 系列芯片,而是其他乐鑫系列的芯片(如 ESP32-S3、ESP32-P4 等),则需要通过该命令切换到你所使用的目标芯片。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:set-target:操作功能为设置目标芯片。可使用(idf.py --list-targets 命令查看当前 ESP-IDF 版本支持的所有目标芯片)。
③:<target>:切换目标芯片。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令切换目标芯片。
图4.2.1.4 切换目标芯片
执行上述命令后,test 工程下将会编译出 build 文件夹和 sdkconfig 文件。其中,sdkconfig 是 ESP-IDF 项目中的配置文件,用于定义项目的编译和运行参数。它包含各种配置选项,如目标芯片型号、外设启用情况、内存管理、网络协议栈配置等。该文件的主要作用是根据用户的需求调整项目的功能和性能。
4,启动图形配置工具
该命令是启动 ESP-IDF 提供的图形化配置工具,用于方便地设置和管理项目的配置选项。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:menuconfig:操作功能为开启图形化配置界面。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令开启图形化配置界面,如下图所示。
图4.2.1.4 进入图形配置工具
menuconfig界面是ESP-IDF的图形化配置工具,供开发者直观地设置项目参数;当通过该界面修改配置并保存后,这些更改会被写入sdkconfig文件中。sdkconfig文件则记录了所有配置选项,确保在项目编译时应用这些设置。因此,menuconfi是配置的操作界面,sdkconfig是配置的存储文件,两者共同作用于项目的配置管理。
在以后的章节中,笔者将详细讲解menuconfig图形化配置工具中常用选项的作用,帮助大家更好地理解和学习它。
5,构建工程
此命令将构建当前目录下的工程,具体步骤包括:创建用于保存构建输出文件的build目录(可使用-B选项更改路径),运行CMake以配置工程并生成构建文件,最后通过主要构建工具(Ninja或GNU Make)进行编译。默认情况下,构建工具会自动检测,也可以通过-G选项手动设置。相关构建流程请参见 图4.2.1流程图。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:build:操作功能为构建项目。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令构建项目,如下图所示。
图4.2.1.5 构建工程
编译成功后,系统会将生成的目标文件(.obj)、可执行文件(.elf)和二进制文件(.bin)等保存到 build 文件夹中。
6,清除构建输出
该命令可清除build目录中的构建输出文件,确保下次构建时工程会完全重新构建。需要注意的是,使用该命令不会删除build文件夹内的CMake配置输出。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:clean:操作功能为清除构建输出。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令清除构建输出文件,如下图所示。
图4.2.1.6 清除构建输出的文件
注意:这个命令清除了由Ninja构建工具生成的文件,但不会清除CMake编译输出的文件。
7,删除所有构建内容
此命令将删除build目录下的所有内容,包括CMake配置输出。下次构建时,CMake会重新配置其输出。需要注意的是,该命令会递归删除build目录下的所有文件(工程配置将保留),因此请谨慎使用。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:fullclean:操作功能为清除所有构建输出文件。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令清除所有构建输出文件,如下图所示。
图4.2.1.7 清除所有构建输出文件
8,烧录工程
该命令将在需要时自动构建工程,随后将其烧录到目标芯片。使用-p和-b选项可分别设置串口端口号和烧录程序的波特率。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:-p:设置串口的端口号。
③:COMx:串口的端口号。
④:flash:操作功能为程序下载。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令下载程序,如下图所示。
图4.2.1.8 烧录固件
9,启动监视器
命令用于监控当前项目的运行状态。在监控之前,必须确保已安装 USB 虚拟串口驱动,或使用开发板上的 USB 串口/JTAG 接口连接设备,以便查看项目的调试输出和日志信息。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:monitor:操作功能为启动监视器。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令启动监视器,如下图所示。
图4.2.1.9 启动监视器
10,合并二进制文件
- idf.py merge-bin -o <my-merged-binary>.bin/.hex -f raw
复制代码 在某些情况下(例如将文件传输到另一台机器,且不借ESP-IDF进行烧录),只烧录一个文件比烧录idf.py build生成的多个文件更为便捷。idf.py merge-bin命令会根据项目配置,合并引导加载程序、分区表、应用程序本身以及其他分区(如果存在),并在build文件夹中生成一个二进制文件merged-binary.[bin|hex],之后可对其进行烧录。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:merge-bin:操作功能为合并二进制。
③:-o:输出文件
④:<my-merged-binary>.bin/.hex:输出文件名称
⑤:-f raw:输出二进制。合并后的文件的输出格式可以是二进制(raw),IntelHex(hex)以及 UF2(uf2)
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令启动监视器,如下图所示。
图4.2.1.10 输出合并二进制文件
4.2.2 高级命令
1,打开目标芯片在线ESP-IDF编程文档
该命令将在浏览器中打开与工程目标芯片和 ESP-IDF 版本对应的官方文档,方便用户查看相关的开发资料和参考信息。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:docs:操作功能为打开文档。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令打开在线文档,如下图所示。
图4.2.2.1 打开在线文档
2,显示应用程序大小
该命令将显示应用程序大小,包括占用的RAM和flash 及各部分(如 .bss)的大小。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:size:操作功能为查看应用程序大小。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令查看程序大小,如下图所示。
图4.2.2.2 查看程序相关大小
3,查看组件应用程序大小
该命令将显示工程中各个组件的应用程序大小,帮助开发者了解每个组件在应用中的存储占用情况。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:size-components:操作功能为查询各组件的大小。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令查看各组件的大小,如下图所示。
图4.2.2.3 各组件的应用程序大小(部分截图)
4,查看每个源文件大小
该命令将显示工程中每个源文件的大小,并支持通过--format选项指定输出格式(支持text、csv、json,默认格式为text)。此外,还可以使用--output-file参数指定输出文件的文件名,而不是将结果输出到标准输出。
下面是这个命令的解析和使用方法。
1)命令解析
①:idf.py:是 ESP-IDF 工具链的主要命令行工具。
②:size-files:操作功能为查询g工程每个源文件大小。
2)使用方法
首先,在 PowerShell 终端中切换到项目工程的根目录。然后,输入下图命令查看工程每个源文件的大小,如下图所示。
图4.2.2.4 查看工程每个源文件的大小(部分截图)
比较常用的高级命令就讲解到这里了。如果读者想了解更多高级命令,可以参考乐鑫官方在线文档中的“IDF前端工具”章节,里面对各个命令的使用和功能有非常详细的介绍。
4.3 搭建集成开发环境
在上一小节中,笔者详细阐述了命令式开发的常用命令。然而,对于初学者来说,他们往往更倾向于使用图形界面式的开发方式,因为图形界面能更直观地展示整个开发过程。因此,作者在此推荐使用VS Code IDE作为开发工具。VS Code 支持下载ESP-IDF插件,方便开发者进行项目开发和调试。该插件集成了编辑、编译、烧录和调试等基础功能,还提供工具安装SDK配置和CMake编辑器等附加功能,简化并增强了开发人员在VS Code中开发基于ESP32的IoT应用程序的体验。
4.3.1 VS Code环境安装
鉴于我们使用的是VS Code IDE搭配乐鑫ESP-IDF进行开发,接下来将介绍VS Code的安装过程。首先,访问VS Code的官方(https://code.visualstudio.com/Download)下载页面,根据系统需求选择相应的安装包进行下载。此外,也可以在A盘→6 ,软件资料→1 , 软件→1 ,IDF开发工具路径下找到VS Code的安装包。下图为VS Code的官方下载页面。
图4.3.1.1 VS Code官网下载界面
在此,我们选择下载Windows版本的VS Code,因为我们是在Windows环境下进行开发。虽然其他版本的下载方式应该类似,但这里我们将重点介绍Windows版本的下载步骤。下载完成后,按照以下步骤进行安装即可:
1,以<管理员身份>运行VSCodeUserSetup-x64-1.94.2.exe安装包,如下图所示。
图4.3.1.2 以管理员身份运行VSCode安装包
2,此时,进入安装的许可协议页面,如下图所示。
图4.3.1.3 安装许可协议
3,选择“我同意此协议”,然后点击“下一步”进入选择目标位置页面,如下图所示。
图4.3.1.4 设置安装路径
用户可以自行填写安装位置,但需注意,安装路径最好使用全英文字符,以避免可能出现的路径识别问题。
4,设置安装路径完成后,可点击“下一步”进入选择开始菜单文件夹,如下图所示。
图4.3.1.5 选择开始菜单文件夹
5,这里我们保持默认配置,接着,点击“下一步”进入选择附加任务页面,如下图所示。
图4.3.1.6 选择附加任务
6,请把附加任务全部勾选,然后点击“下一步”进入准备安装页面,如下图所示。
图4.3.1.7 准备安装页面
7,点击“安装”按钮即可开始安装VS Code集成开发环境。安装成功后,界面将如图所示。
图4.3.1.8 VSCode 安装成功
值得注意的是,第一次安装的VS Code软件为英文版本。如果读者希望将VS Code设置为中文汉化,则需要安装简体中文插件。安装方式如下。
在VS Code集成开发环境中,可以通过点击左侧的“扩展”图标或使用快捷键“Ctrl + Shift + X”直接进入扩展页面。在搜索栏中输入“Chinese”,然后选择安装“Chinese (Simplified) Language Pack for Visual Studio Code”插件,如下图所示。安装完成后,必须重启VS Code才能切换为简体中文界面。
图4.3.1.9 安装简体中文插件
至此,VS Code的安装过程就完成了。
4.3.2 ESP-IDF插件安装与配置
ESP-IDF插件在安装后会调用之前安装的ESP-IDF提供的各种工具和功能,为开发者提供一个集成的开发环境。具体而言,插件利用ESP-IDF的构建系统,使开发者能够轻松编译项目,并集成烧录工具,以便直接将固件烧录到目标设备。此外,插件还调用ESP-IDF监控功能,实时查看设备输出,帮助进行调试。同时,它提供图形化界面,简化了项目参数的配置过程。简单来说ESP-IDF插件通过图形化方式结合ESP-IDF和ESP-IDF Tools,对项目进行构建,从而提升开发效率和用户体验。
下图是ESP-IDF插件、ESP-IDF Tools、ESP-IDF、ESP Component Registry和Project关系图。
图4.3.2.1 项目工程编译关系图
在项目开发过程中,ESP-IDF插件、ESP-IDF Tools、ESP-IDF(SDK)和ESP Component Registry协同工作,形成一个集成的开发流程。ESP-IDF插件提供了用户友好的图形界面,允许开发者提交编译、烧录等命令,并接收调试反馈。ESP-IDF Tools负责处理项目需求和执行编译、构建工作。ESP-IDF作为核心开发平台,提供了必要的核心组件,如BSP和RTOS,而ESP Component Registry则为开发者提供大量开源组件。最终,项目通过这些工具和组件库完成构建,输出最终的结果。
接下来,笔者将详细介绍如何在VS Code集成开发环境下安装ESP-IDF插件的具体步骤。
首先,打开VS Code软件,按下快捷键“Ctrl + Shift + X”进入扩展页面。在搜索栏中输入“ESP-IDF”进行搜索,然后点击“安装”按钮进行插件安装。下图展示了具体操作步骤。
图4.3.2.2 下载与安装ESP-IDF插件
按下快捷键“F1”或“Ctrl + Shift + P”打开“显示所有命令”界面。然后,在搜索框中输入“Configure ESP-IDF”,并从下拉菜单中选择此选项,进入 ESP-IDF 配置界面,如下图所示。
图4.3.2.3 配置ESP-IDF扩展
回车后,将进入配置 ESP-IDF 插件的界面,如下图所示。
图4.3.2.4 进入ESP-IDF插件配置界面
在上图中,点击“USE EXISTING SETUP”使用现有的ESP-IDF,如下图所示。
图4.3.2.5 搜索当前系统的ESP-IDF
如果在“Search ESP-IDF in System”下看到你想要安装的版本(例如上图的v5.3),可以直接点击该版本进行安装。如果没有找到所需版本,则点击“Search ESP-IDF in System”选项进入手动配置,通过指定路径来完成安装,如下图所示。
图4.3.2.6 手动安装ESP-IDF
在上图中,首先选择“Select download server”和“Select ESP-IDF version”选项,确保与上图中的配置一致。接着,在“Enter ESP-IDF directory (IDF_PATH):”选项中设置为我们之前安装ESP-IDF(SDK)的路径,并在“Enter ESP-IDF Tools directory (IDF_TOOLS_PATH)”选项中设置为IDF_TOOLS_PATH/tools路径(IDF_TOOLS_PATH路径请看系统环境变量)。确保所有设置完成后,点击上图中的“install”按钮,开始安装ESP-IDF。
当出现下图的所示,表示我们的ESP-IDF安装成功。
图4.3.2.7 ESP-IDF插件配置成功
至此,我们已经成功配置了ESP-IDF插件,并且完成了与ESP-IDF(SDK)和ESP-IDF Tools的集成。这使我们可以在VSCode集成开发环境下,顺利进行项目的编译、烧录和调试工作,实现高效的开发流程。
4.3.3 VSCode的个性化配置(可选)
在Visual Studio Code(VS Code)中,settings.json文件用于存储用户的个性化配置和工作环境设置。它控制了编辑器的外观、代码格式化风格、自动补全行为、调试配置等,配置可以分为用户设置(全局设置)和工作区设置(针对特定项目)。以下是配置settings.json文件的流程:
1,打开设置界面
菜单栏中选择 文件 > 首选项 > 设置,进入 VS Code 的设置页。
2,添加个性化配置和工作环境设置参数
添加内容如下:
- <font size="3">{</font>
- <font size="3"> /* 上面的部分是我自己创建的一些设置 */ </font>
- <font size="3"> "editor.insertSpaces": true,</font>
- <font size="3"> /* 自动插入空格禁用*/ </font>
- <font size="3"> "editor.detectIndentation": true,</font>
- <font size="3"> /* 启用时根据文件内容进行重写*/ </font>
- <font size="3"> "editor.renderControlCharacters": true,</font>
- <font size="3"> /* 是否显示控制字符:启用*/ </font>
- <font size="3"> "editor.renderWhitespace": "all",</font>
- <font size="3"> /* 显示4个空格是.... */ </font>
- <font size="3"> "editor.tabSize": 4,</font>
- <font size="3"> /* tab 设置为4个空格*/ </font>
- <font size="3"> "editor.fontSize": 18,</font>
- <font size="3">}</font>
复制代码 至此,我们已成功完成VS Code集成开发环境中ESP-IDF插件的安装,并配置好了VS Code的工作环境。在接下来的章节中,笔者将详细讲解如何在VS Code IDE中新建一个ESP-IDF项目工程,并进一步探讨工程的调试工具及相关配置的使用,以帮助大家更好地进行项目开发。
|