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

序言

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

现象

上电后esp32会屏幕重启,如果此时接通串口0观察到打印出来的内容。如果开启了日志则会如图1,否则会如图2

        图1                  图2

 解决

造成这一现象的原因是程序超出了flash中预先分配的程序存储空间(1M),通过修改分区表可以解决。步骤如下:

1.建立自己的分区表.CSV文件

2.make menuconfig 菜单中 Partition Table-->Partition Table选择Custom partition table CSV,Custom partition CSV file中指定CSV文件地址。

这里提供一个我的分区表:

nvs, data, nvs, , 0x4000,
otadata, data, ota, , 0x2000,
phy_init, data, phy, , 0x1000,
factory, app, factory, , 0x14F000,
ota_0, app, ota_0, , 0x14F000,
ota_1, app, ota_1, , 0x14F000,

需要注意的是:

1、分配分区表的时候空间一定要是4k的整数倍也就是:存储空间%4096=0。这是因为flash的一个区块是4k。

2、ota分区(ota_0,ota_1)的空间最好和原厂程序(factory)相同

原文地址:https://www.cnblogs.com/zornlink/p/11408925.html

时间: 2024-10-12 17:12:10

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

android -- 蓝牙 bluetooth (二) 打开蓝牙

4.2的蓝牙打开流程这一部分还是有些变化的,从界面上看蓝牙开关就是设置settings里那个switch开关,widget开关当然也可以,起点不同而已,后续的流程是一样的.先来看systemServer.java的代码,蓝牙服务开启的地方,最后一个else分支是我们关心的,前两个是模拟器的一个测试模式的. [java] view plaincopy if (SystemProperties.get("ro.kernel.qemu").equals("1")) { S

判断蓝牙是否打开并打开蓝牙

1.简单布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_paren

Python+Appium寻找蓝牙/wifi匹配

前言: 此篇是介绍怎么去寻找蓝牙,进行匹配.主要2个问题点: 1.在不同环境下,搜索到的蓝牙数量有变 2.在不同环境下,搜索到的蓝牙排序会变 简单思路: 将搜索出来的蓝牙名字添加到一个list去,然后在去匹配list里是否有你要匹配的蓝牙,找到了就点击,没找到,又进行下一次寻找,知道找到为止 简单代码: #coding:utf-8 from appium import webdriver from selenium.webdriver.support.ui import WebDriverWai

ESP32-DOWDQ6蓝牙&amp;Wifi 两个可单独控制的 CPU 内核

乐鑫(Espressif Systems)研发设计IoT业内集成度最高.性能最稳定.功耗最低的无线系统级芯片. ESP32-D0WDQ6集成无线2.4 GHz Wi-Fi和蓝牙双模的单芯片方案,具有两个可单独控制的CPU内核,采用台积电(TSMC)超低功耗40纳米工艺,拥有最佳的功耗性能.射频性能.稳定性.通用性和可靠性,适用于各种应用和不同功耗需求. ESP32系列产品型号包括ESP32-D0WDQ6,ESP32-D0WD,ESP32-D2WD,ESP32-S0WD ESP32-D0WDQ6:

解决:设置中打开蓝牙,测试机不会自动搜索设备

[操作步骤]:设置中打开蓝牙,测试机不会自动搜索设备 [测试结果]:设置中打开蓝牙,测试机不会自动搜索设备 [预期结果]:打开蓝牙,应该会自动搜索设备 根据反复测试发现,当蓝牙状态打开,并且有可用的设备的时候,或者存在已经配对成功的设备的时候,系统将不会在进行设备搜索,因此根据String定位到蓝牙的设置界面的Fragment为:BluetoothSettings.java. 在BluetoothSettings类的updateContent()方法中我们发现下面代码: ......      

Switch Browser关键字——模拟打开了多个浏览器后,在多个浏览器中的切换工作

Switch  Browser关键字——模拟打开了多个浏览器后,在多个浏览器中的切换工作: 接收  [   index_or_alias ]一个参数: ==================================================================================== Open  Browser              http://www.baidu.com                       chrome Location  sh

在安装ODAC后再安装.netframework导致应用程序无法找到.netframework data provider的解决方案(3种)

背景:在安装ODAC以后再进行framework的安装. 出现问题:这样会导致应用程序问题如下图 出现问题原因分析:经研究,在我们按照ODAC的过程中会向.netframework注册一些信息,这些注册信息写在machine文件中,如下图所示 在安装ODAC后会向machine这个文件写入ODAC的一些基本信息.具体的就不上图了,大家打开这个文件搜索oracle会看得到. 解决方案:有三种 第一:重新安装ODAC(傻瓜式做法)    第二:覆盖C:\Windows\Microsoft.NET\F

eclipse在异常关闭后,导致无法启动workspace问题的解决

现象: 现在大多数java开发者使用的IDE都是eclipse,而且一般在一个workspace中,会有很多个项目,有些是open的,有些是关闭的.有时候eclipse在使用过程中会莫名其妙的异常中断关闭,再打开eclipse,选择workspace后,会一直停留在加载的页面上无法进入eclipse平台. 问题分析: 这个问题一直碰到,但具体原因不清楚,可能需要eclipse的开发工程师才能回答. 问题解决: 这个问题的解决办法至少有两个. 1.一个办法就是删除这个workspace的整个met

插件式的80后程序员是怎样在夹缝中求生存的

我们先说80后.网上到处流传80后是最苦逼的.在夹缝中求生存的. 我个人部分同意,为啥说80后在夹缝中呢?(这里我们先摒除一些80后成功人士,我可以很负责的说,这是少数.如果你就是这少数中的一员,那么请直接跳过本章) 我个人总结了有那么几点: 1.现在大部分财富都掌握在60-70后手中. 这条估计已经是一个不争的事实.话说时事造就英雄,60.70经历了房地产.下海经商.互联网.软件发展的爆发期,而这个时期为他们积累资金和财富提供了基础.而此时,80后还在读书. 2.  即将发生的财富转移 话说9