Espressif IDE 及其 v2.4.0 新增功能—第一部分

Espressif IDE 是乐鑫基于 Eclipse CDT,专为乐鑫物联网开发框架 ESP-IDF 打造的独立集成开发环境 (Integrated Development Environment, IDE),支持用户使用 ESP-IDF 实现端到端物联网应用开发。

Espressif IDE 附带最新的 ESP-IDF Eclipse 插件、基本的 Eclipse CDT 插件、OpenOCD 插件以及其他来自 Eclipse 平台的第三方插件,以支持构建 ESP-IDF 应用程序。

Espressif IDE 启动画面

Espressif IDE 的主要特性

  • 在 Eclipse CDT 环境下构建,易于使用
  • 专为 ESP-IDF 应用程序开发而打造
  • 集成编译所需的 ESP 工具链配置
  • 可自动配置编译环境变量
  • 提供新建项目向导以及 ESP-IDF 快速入门模板
  • 具备领先的的编辑、编译以及语法着色功能
  • 配有预建的函数头和函数定义导航
  • 支持安装一个全新的 ESP-IDF 或是配置现有的 ESP-IDF
  • 可直接从 IDE 中安装和配置 ESP-IDF 工具
  • 配有用于项目设置的 SDK 配置编辑器
  • 集成 CMake 编辑器,用于编辑 CMake 文件,如 CMakeLists.txt
  • 支持基于 CMake 的编译系统
  • 支持通过 UART 和 JTAG 烧录
  • 支持自定义的 ESP-IDF OpenOCD 调试功能,包含预配置和设置
  • 支持 GDB 硬件调试
  • 集成 ESP-IDF 串行监视器,用于查看程序的串行输出
  • 配备预置编译环境变量的 ESP-IDF 终端
  • 配备应用程序大小分析编辑器,用于分析应用程序的静态内存使用情况
  • 支持堆分析,用于进行内存分析并发现内存泄漏
  • 支持 Panic 模式下 GDB Stub 调试
  • 提供应用层跟踪,以便使用启动和停止命令,分析程序行为
  • 支持 ESP32、ESP32-S2、ESP32-S3 和 ESP32-C3 系列芯片
  • 支持中英文
  • 具备可扩展性,适用于 Eclipse 生态体系中的其他第三方插件
  • 支持 Windows、macOS 和 Linux 操作系统

Espressif IDE V2.4.0 新增功能

在最近发布的 v2.4.0/2.4.1 版本中,我们推出了一系列新功能,并对现有功能和 Bug 进行了优化与修复。新版本大大提升了插件的质量,能够有效提高用户的工作效率。

源代码导航和链接 ESP-IDF 组件

IDE 中提供了 ESP-IDF 的集成组件。用户在创建 ESP-IDF 项目时,所有相关的 ESP-IDF 组件(基于 compile_commands.json)都将被链接到项目中,并存放在名为 esp_idf_components 的文件夹下。

该功能具备如下两个优点:首先,用户得以直接在 eclipse 项目资源管理器下浏览 ESP-IDF 源代码;其次,只需按下 F3 或 ctrl + 点击函数名(在 macOS 系统中则为 command + 点击函数名),即可导航到函数定义。

 源代码导航

索引器优化

之前,IDE 存在无法解析头文件和索引器的问题。尽管可以成功编译项目,但 eclipse 插件的作用仅限于显示源代码编辑器中的错误。在 v2.4.0 版本中,我们对索引器进行了优化,使其能够根据 compile_commands.json 定义的组件找到头文件并解析这些功能。

现在,项目构建完成后,插件将链接 ESP-IDF 组件,并对其中列出的所有文件进行索引,整个过程会耗费数秒的时间(根据主机系统的不同而有所差异)。组件在 esp_idf_components 文件夹下的文件会被链接到 esp-idf components 文件夹中。每次编译后,文件列表都会刷新。

应用层跟踪

ESP-IDF 为用户提供应用层跟踪功能,以分析应用程序的行为。用户可以在 IDE 的用户界面中,使用启动跟踪或停止跟踪命令,并处理收到的数据。使用 app_trace_to_host 项目即可快速上手此代码库。

在开始使用应用层跟踪之前,首先需要为项目创建调试配置。为确保成功启动 OpenOCD 服务器,请在这一步选择您所使用的开发板。

调试配置创建完毕后,请在项目资源管理器中右击项目,并点击“ESP-IDF:应用层跟踪 (ESP-IDF: Application Level Tracing)”。

点击后,在应用层跟踪的对话框打开之前,将首先启动 OpenOCD 服务器, 用户无需再从外部启动服务器。在应用层跟踪对话框的最上方,有一些自动配置好的字段,您可以基于跟踪启动命令对这些字段进行更改。

跟踪处理脚本 (Trace Processing Script) 和开始解析命令 (Start Parsing Command) 用于解析输出文件。跟踪处理脚本字段会提供解析脚本的路径(默认路径为 esp-idf 下的 logtrace_proc.py。开始解析命令字段可以用于检查解析命令,并按需进行编辑。默认情况下,该字段会被默认配置为匹配 $IDF_PATH/tools/esp_app_trace/logtrace_proc.py/path/to/trace/file/path/to/program/elf/file)。

在转储文件可用前,“开始解析 (Start parse)”按钮将保持禁用。如果要生成文件,需要点击对话框底部的“开始”按钮。点击后,该按钮将变为“停止”,再次点击即可停止跟踪。

生成输出文件后,点击“开始解析 (Start parse)”按钮,eclipse  控制台将随即输出解析脚本。

应用层跟踪控制台

点此获取更多信息。

构建控制台中的应用内存使用情况追踪

内存使用情况追踪是物联网应用中关键的一环。编译完成后,您就可以查看应用程序的 RAM 和 flash 使用信息了。

ESP-IDF 组件注册器

IDE 提供从 IDF 组件注册器 (Components Registry) 浏览和安装 esp-idf 组件的功能,并支持将组件集成到现有的 ESP-IDF 项目中。

在项目资源管理器中找到需要添加组件的项目,点击右键,选择“安装 ESP-IDF 组件 (Install ESP-IDF Components)”,用户界面将显示出所有可用的组件。

您可以点击窗口中的“安装”按钮,将该组件添加到项目中。若想查看该组件的 readme 文件,请点击“更多信息 (More Info)”,打开该组件 readme 文件的网页链接。

ESP-IDF 组件安装界面

GDBStub 调试

IDE 支持在 Panic 模式下使用 GDBStub 片上调试来诊断和调试 ESP-IDF 应用程序。

在为项目启用 GDBStub 调试前,用户需要首先在 sdkconfig 中启用它:双击项目根目录下的”sdkconfig",打开配置编辑器;展开“组件配置 (Component Config)”,选择“ESP 系统设置 (ESP System Settings)”。在右侧的“Panic 处理程序行为 (Panic Handler behavior)”设置中,从列表中选择 “GDBStub on Panic”选项。

现在,当您连接串行监视器时,就会自动连上 GDBStub 调试器。在这个例子中出现了 Panic,程序创建了一个模板 hello_world 项目,并在主 c 文件中添加了以下几行代码。

这是一个全局变量

COREDUMP_DRAM_ATTR uint8_t global_var;

现在在 esp_restart() 函数上方添加如下两行:

global_var = 25;
assert(0);

最后的文件如下所示:

编译并烧录该项目,随后启动串行监视器。第 45 行发出了断言失败的信号,这将会使芯片进入 Panic 模式。运行至该行时,您将被提示把视角切换到调试模式。此时,芯片处于中断状态。请注意在该 Panic 模式下,您不能直接从该行处继续执行,而是需要通过 IDF 命令停止并重启芯片,或者直接重启串行监视器。

您可以查看寄存器的堆栈跟踪,或是直接查看堆栈框架中的变量值。点击“停止”按钮即可退出调试会话。

GDBStub 调试— Panic 模式下的编辑器

Espressif 菜单

用户可以通过 Espressif 菜单,查看与插件相关的所有项目,操作十分便捷!

支持 Eclipse 2021-12

IDF Eclipse 插件支持最新版本的 Eclipse 2021-12 (4.22) 以及 Eclipse 2021-09 和 Eclipse 2021-06。

除上述新增功能外,v2.4.0 版本还进行了一些优化与修复。请查阅 v2.4.0v2.4.1 版本页面,了解更多信息。


点此继续阅读“Espressif IDE 及其 v2.4.0 新增功能—第二部分”。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值