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.0 和 v2.4.1 版本页面,了解更多信息。


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

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

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

    在"Espressif IDE 及其 v2.4.0 新增功能-第一部分"中,我们介绍了 Espressif IDE 的重要特性.本篇文章,我们将继续介绍它的安装选项和所支持的平台. ...

  2. 快乐教鞭2.0新增功能介绍

    快乐教鞭:教师教学的得力助手,自由写画计算机屏幕.用于教学演示,产品展示. 快乐教鞭2.0新增功能简介: 1.增加防止程序被重复运行功能.此功能可以使快乐教鞭应用程序不被别人通过多次双击图标而重复运行 ...

  3. ASP.NET Core 5.0新增功能摘要

    .NET5.0发布了大半个月,从.NET Core3.1的平滑迁移体验令人心旷神怡,改个targetframework就完成迁移,不要太轻松!然而,ASP.NET Core5.0也有很多有意思的改变, ...

  4. 使用ILSpy探索C#7.0新增功能点

    第一部分: C#是一种通用的,类型安全的,面向对象的编程语言.有如下特点: (1)面向对象:c# 是面向对象的范例的一个丰富实现, 它包括封装.继承和多态性.C#面向对象的行为包括: 统一的类型系统 ...

  5. Xcode 9.0 新增功能大全

    Xcode是用于为Apple TV,Apple Watch,iPad,iPhone和Mac创建应用程序的完整开发人员工具集.Xcode开发环境采用tvOS SDK,watchOS SDK,iOS SD ...

  6. 必须进行支持的游戏方可使用此功能_C#8.0 新增功能

    (给DotNet加星标,提升.Net技能) 转自:张传宁cnblogs.com/SavionZhang/p/11201818.html C#8.0提供了许多增强功能 1.Readonly 成员 可将 ...

  7. 三星a9 刷 android 8,三星手机明年升级安卓8.0 新增功能曝光

    安卓8.0于今年8月推出,它优化了续航,系统更流畅,速度更快更安全.谷歌Pixel.Nexus 6P.Nexus 5X等一批亲儿子已在第一时间升至该系统.HTC.索尼.诺基亚等品牌已陆续公布了旗下设备 ...

  8. JumpServer 堡垒机 v2.25.0 发布

    导读 近日,JumpServer 开源堡垒机正式发布 v2.25.0 版本.在这一版本中,用户登录支持 OAuth2.0 协议认证方式,管理员配置 OAuth2 相关的认证信息,用户在登录时即可通过 ...

  9. Zabbix6.0使用教程 (一)—zabbix新增功能介绍2

    上一篇我们已经介绍了部分zabbix6.0的新增功能,这期我们将继续为家详细介绍下余下的zabbix6.0新增功能,大家可以往下看. 六.监控项 6.1 自动类型选择 监控项配置表单会自动建议匹配的信 ...

最新文章

  1. 深入java虚拟机 第四版_深入理解Java虚拟机-常用vm参数分析
  2. 动态获取奥比UVC设备索引号的方法
  3. java反射机制关键字驱动_搭建关键字驱动自动化测试框架
  4. Beatiful Soup获取淘宝商品详情
  5. 小学计算机学情分析,小学信息技术教学计划【三篇】
  6. 计算机用键盘能干什么,年轻人的第一块智能键盘-半台MBP能干什么?
  7. ubuntu批量创建文件夹
  8. 脚本录制软件python 按键精灵 tc_GitHub - yang-dongxu/KeymouseGo: 类似按键精灵的鼠标键盘录制和自动化操作...
  9. 汇编语言典型例子详解_汇编语言常见例子
  10. 图形化开发(九)01-Three.js之案例——王者荣耀demo制作
  11. tableau数据汇总/明细/分-总的行列展示— Lee桑的学习笔记
  12. HG_REPMGR autofailvoer自动故障转移
  13. 设顺序表va中的数据元素递增有序。先实现将x插入到顺序表的适当位置上,保存该表的有序性。
  14. redis redisson 分布式锁 WRONGTYPE Operation against a key holding the wrong kind of value
  15. 如何提高效率 Aaron Swartz
  16. 我的大一学习生活总结
  17. 《三国志X PK版》2005年1月发售
  18. 腾讯云轻量应用服务器 CentOS7.6 +Tomcat/apache 搭建个人web项目,并允许外网通过80或8080端口访问【超详细】
  19. 供独立游戏开发者参考的2D美工教程(八)
  20. ansys 体和体之间接触_ANSYS接触分析中的一些注意事项和技巧

热门文章

  1. C++实现计算技能伤害,一套秒杀!LOL无限视距(C++源码)
  2. 无线路由器实现多台主机共享上网
  3. XunLei7.x colse autoUpdate
  4. AD18打开PCB项目出错解决方法
  5. 后台推广数据下载处理导入数据库
  6. [1.2]由UML模型通过XMI生成XML,通过XSLT展示到表现层
  7. RS,JK,D,T四种触发器之间的相互转换(参考)
  8. python中timesleep什么意思_Python中的time.sleep()
  9. 输入电压调整率和负载调整率的测试…
  10. 主页面弹框之后返回主页面并且刷新信息(详细讲解)