platformio中arduino框架下esp32 flash信息修改问题

news/2024/11/16 10:15:49/

问题描述:

购买的esp32-wroom-32E的flash明明是16MB,但是为什么在烧录的时候只能显示1MB?

回答:

在platformio中选择板子的时候,给的模板默认是4MB的模板。4MB又会被分成5个区。下图是flash的一个分区表,用arduino的话,代码是存放在app0区的,也就是你的代码区仅有0x140000大小。

问题描述:

我希望我的代码区尽可能的大,不需要其他分区,应该怎么做?

回答:

在工程目录文件夹下,新建一个userFlash.csv文件,文件名随便,格式是csv。然后打开,你可以直接用vscode打开,把下面这个粘贴进去,官方给出了常见的分区。arduino-esp32/tools/partitions at master · espressif/arduino-esp32 · GitHub。一定要注意如果使用excel打开,不用逗号。因为csv文件本身是以逗号作为表格分割符的。但是你用vscode打开,他其实跟你用txt打开csv文件是一样的,一定要加逗号。分区的数值总的来说是你的实际flash大小,当然比他小也没事。

# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x640000,
app1,     app,  ota_1,   0x650000,0x640000,
spiffs,   data, spiffs,  0xC90000,0x370000,

之后在platformio.ini中添加 board_build.partitions = partitions.csv

此时你再次编译就不会出现问题了。(烧录还是会有问题的)

问题描述:

已经修改了flash分区表,编译也没问题了,但是就是烧录不了

回答:

是编绎时没接入板,与板的flash大小没关。修改配置无效,是因为编绎程序首先认为板是默认4M大小的。而pio run -t menconfig 只是修改配置项,只能在编绎成功时才能将配置一起并入目标码,可能这个编译顺序错误或提示错误。所以就要了解从哪里读到的是4M大小。plaftfromio 新建项目时,要选择板,其实每种板子都有它的配置文件。plaftfromio 先读取的是配置文件。由与是选的板子是esp32 dev module ,所以 配置文件是 esp32_dev.json。

解决: 修改 板的配置文件,这里是 esp32_dev.json.windows 一般位于{userProfile}.platformio\platforms\espressif32\boards 目录下。环境重装时记得这里要改过来,否则项目又会报错~。

"upload": {"flash_size": "16MB","maximum_ram_size": 327680,"maximum_size": 4194304,"require_upload_port": true,"speed": 460800},

至此,保存重启vscode 就可以了

 


http://www.ppmy.cn/news/892706.html

相关文章

ESP32 Arduino框架入门(二)外部中断和TouchPad(电容触摸引脚)

接ESP32 Arduino框架入门(一)介绍和工程创建(8条消息) ESP32 Arduino框架入门(一)介绍和工程创建_长谷深风灯盏的博客-CSDN博客_arduino的esp32软件系统架构 接下来继续介绍ESP32-Wroom-32E的外部引脚、中断、定时器等部分…

ESP32-WROOM-32E,MQTT报错mqtt_message_receive:transport_read() error:errno=128

ESP32-WROOM-32E,MQTT使用采坑经验之transport_read() error:errno128 配置MQTT的是 esp_mqtt_client_config_t 结构体,里面包含了MQTT的信息,可根据具体场景配置。 问题 使用MQTT建立连接后,不收发数据,每隔35秒会有如下报错&…

【Intel Parallel编译器(icc icpc ifort)Linux-centos7系统安装配置】

(toc) Intel Parallel编译器(icc icpc ifort)Linux系统安装配置 本篇文章主要讲解在linux系统centos7.5/centos7.9版本中,Intel编译器的安装、环境导入、并行库调用以及在不同centos版本中安装时缺少32位库的解决方案等内容。 一、★Intel编译器定义 Intel Paralle…

x64保护模式_IA-32e

IA-32e 内核x64位,内核是64位的,用户可以是64也可以是32位。但是内核一定是64位的。 强制平坦段,段基址必须是0,不支持TSS段切换了。把32位硬件不用的给删了。 MSR寄存器 这是x64独有的。 MSR寄存器c0000080如果位81&#xf…

【操作系统】X86架构的64位操作系统探索

背景 8086 系列芯片的成功带领英特尔 IA-32 指令集架构占据芯片市场的主导地位。20 世纪末,英特尔与惠普一同针对 64 位芯片展开研究,并推出 IA-64 指令集架构。然而,该架构与已经流行的 IA-32 架构不兼容,这导致它的发展受到阻碍…

启明云端分享|乐鑫ESP32-WROOM-32E和ESP32-WROOM-32UE两款模组的区别

提示:ESP32-WROOM-32E 和 ESP32-WROOM-32UE 是两款通用型 Wi-FiBTBLE MCU 模组,功能强大,用途广 泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和 MP3 解码等。 这两款模组在应用中,有…

import错误:undefined symbol: _ZN6caffe26detail37_typeMetaDataInstance_preallocated_32E

在使用DCN_V2时遇到了这个错误, 发现还是这个包没装好得原因,所以解决办法就是,cd进入这个包的文件夹 然后依次操作这两句 cd /root/data/snake-master/lib/csrc/extreme_utils rm -r build python setup.py develop 问题解决!…

情感分析之情绪原因识别

一. 情绪原因识别概述 1.1 什么是情绪原因识别 大部分针对情绪分析的研究主要集中在情绪识别和情绪分类方面,只关注情绪的类别,属于比较浅层的情绪分析任务。情绪原因识别是近年来出现的深层次文本分析与理解的研究,它能针对文本中出现的情…