ESP32_VSCode+PlatfromIO环境

1、搭建环境

惊讶,原来已经智能到这种程度了?

ChitGPT提供的步骤基本是没有问题的,我补充几点(突然像领导哈哈哈)

  • 在步骤2之后需要重启VSCode;
  • 步骤3Framework我选择的是Arduino,截图在下以供参考;
  • 步骤3第一次新建工程非常非常之慢,我搜索过别的文章有心里准备所以由着TA下载,大概是三个小时吧,后面新建工程就很快了。

 

2、测试结果

使用的是上一篇文章ESP32_使用天猫精灵利用巴法云控灯例程测试_PWRJOY的博客-优快云博客的代码,有用到WiFi库,试试搭建的环境能不能编译下载成功。

结果很顺利,首先文章中代码直接复制粘贴到main.cpp,保留最上面的头文件 #include <Arduino.h>,因为可以使用自带的串口监视器,所以需要在platformio.ini配置文件里加上"monitor_speed = 115200"这一句。

第一次编译上传会下载一些文件(简单看了一下和Arduino IDE需要的差不多,esptool啥的),烧录完之后功能也正常,如下:

### ESP32-S3 使用 VSCode 和 ESP-IDF 进行开发时 IRAM 100% 占用解决方案 当遇到 ESP32-S3 在使用 VSCode 和 ESP-IDF 开发过程中出现 IRAM (内部 RAM) 100% 占用的情况,这通常意味着程序使用的静态和动态内存超出了芯片内置的 IRAM 容量。ESP32-S3 芯片具有有限的 IRAM 大小,因此优化代码以减少 IRAM 的消耗至关重要。 #### 减少 IRAM 使用的方法 1. **启用外部 SPIRAM** 如果项目允许,可以配置 ESP32-S3 启动并使用外部 PSRAM 来扩展可用内存空间。通过修改 `menuconfig` 中的相关设置来开启此功能: ```bash make menuconfig ``` 寻找 "Component config" -> "ESP System Settings" 下面有选项用于使能外置 SRAM 支持[^2]。 2. **调整中断优先级和服务例程位置** 对于某些高频率触发或长时间运行的服务例程,考虑降低其优先级或将其实现移至主循环或其他低负载区域执行。此外,尝试重新分配不同类型的中断到不同的 CPU 核心上也可以有效缓解 IRAM 压力[^1]。 3. **精简全局变量声明** 尽可能地缩小全局变量的作用范围,并将其定义为局部变量;对于确实需要保持整个生命周期的对象,则应评估是否有更高效的数据结构替代方案。注意避免过度依赖大尺寸数组作为缓冲区,因为这些都会增加启动时所需的初始化数据大小从而影响 IRAM 使用率。 4. **利用链接器脚本自定义分区表** 修改默认链接文件 (`ld`) 可以为应用程序创建更加合理的存储布局,比如将不常访问的部分放置在外存中加载而不是全部驻留于内核地址空间之内。具体操作涉及编辑项目的 Makefile 或 CMakeLists.txt 文件以及相应的 .ld 配置文档。 5. **审查第三方库及其编译参数** 检查所引入的所有外部资源是否遵循最佳实践编写而成,特别是那些来自社区贡献而非官方维护者提供的组件。确保它们已经过适当裁剪并且启用了必要的优化标志(-O2,-Os)。 6. **分析工具辅助诊断** 利用 Espressif 提供的各种调试手段如 GDB、OpenOCD 结合 Visual Studio Code 插件来进行深入剖析当前系统的瓶颈所在之处。还可以借助 IDF 自带命令获取详细的堆栈跟踪报告以便定位潜在问题根源。 7. **合理规划任务调度策略** 设计良好的 RTOS 应用应当具备清晰的任务划分机制,在满足实时响应需求的同时也要兼顾整体性能表现。适时调整各线程间的相对权重关系有助于提高系统吞吐量进而间接减轻对宝贵硬件资源的竞争压力。 8. **禁用不必要的特性** 关闭任何未被实际应用的功能模块,例如 Wi-Fi 扫描模式下的节能特性、蓝牙广播间隔延长等措施均能在一定程度上释放额外的空间给更重要的计算逻辑处理单元调用。 9. **更新 SDK 版本** 确认正在采用最新稳定版固件包,因为开发者团队会持续改进底层架构设计以适应日益增长的应用场景变化趋势,新版本往往包含了针对特定平台特性的针对性修复补丁。 ```cpp // 示例:关闭 LEDC 渐变功能以节省 IRAM #include "driver/ledc.h" void setup() { ledc_fade_func_uninstall(LEDC_HIGH_SPEED_MODE); // 关闭指定通道的渐变效果 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值