解决方法:ESP32同时打开蓝牙、WIFI和OTA后程序过大导致无法启动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决方法:ESP32同时打开蓝牙、WIFI和OTA后程序过大导致无法启动相关的知识,希望对你有一定的参考价值。

参考技术A

使用 ESP32-WROOM-32E(4MB) 模组,同时使用了蓝牙模块、WIFI模块功能,编译的时候没问题,然后运行的时候报以下错误:

ESP32 如果使同时使用了蓝牙模块、WIFI模块和OTA的话很有可能会导致程序过大(超过1M),系统无法启动的情况。这里提供一种通过 修改分区表 扩大程序储存空间的方法来避免这一问题。这一解决方法同样只用于因为其他问题导致的程序过大的情况。

esp-idf/components/partition_table 有多个分区表文件供参考。

简单的来说,分区表就是对Flash进行划分,不同区域存放不同的东西。如下面一个是双OTA备份分区表文件 partitions_two_ota_coredump.csv 对应的是下图的划分。通过对比文件和图片,很容易理解分区表。每一行对应的内容顺序分别是Name, Type, SubType, Offset,Size。如果Offset没有填写则默认在上一个分区的末尾添加。

在项目下创建一个分区表 partitions.csv

• 由 Leung 写于 2022 年 3 月 4 日

• 参考: esp32 同时打开蓝牙,wifi和ota后程序过大导致无法启动

以上是关于解决方法:ESP32同时打开蓝牙、WIFI和OTA后程序过大导致无法启动的主要内容,如果未能解决你的问题,请参考以下文章

解决方法:ESP32同时打开蓝牙WIFI和OTA后程序过大导致无法启动

esp32 同时打开蓝牙,wifi和ota后程序过大导致无法启动

esp32 串口,蓝牙等其他方式OTA

获取 esp32 天线的信号量(蓝牙/wifi 双模)

ESP3220.WIFI Web Servers 双色LED灯实验(WiFi库)

ESP3220.WIFI Web Servers 双色LED灯实验(WiFi库)