合宙ESP32C3基于Arduino IDE框架下配置分区表

合宙ESP32C3基于Arduino IDE框架下配置分区表


自定义下的新增分区表选项

在这里插入图片描述

示例代码

void setup() {
  Serial.begin(115200);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}
void loop() {
  digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(13, LOW);   // turn the LED on (HIGH is the voltage level)
  delay(1000); // wait for a second
  digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(13, HIGH);
  delay(1000);  

Serial.printf("getHeapSize= %d \n",ESP.getHeapSize());
delay(10);
Serial.printf("getFreeHeap= %d \n",ESP.getFreeHeap());
 delay(10);
 Serial.printf("getChipRevision= %d \n",ESP.getChipRevision()); // 3
 delay(10);
 Serial.printf("getChipRevision= %s \n",ESP.getChipModel()); //ESP32-C3
 delay(10);
 Serial.printf("getChipCores= %d Core\n",ESP.getChipCores()); // 1
 delay(10);
 Serial.printf("getCpuFreqMHz= %d MHz\n",ESP.getCpuFreqMHz()); //160 
delay(10);
// Serial.printf("getSdkVersion= %s \n",ESP.getSdkVersion()); 
// Serial.printf("getFlashChipSize= %s \n",ESP.getFlashChipSize());
//  Serial.printf("getFlashChipSpeed= %s \n",ESP.getFlashChipSpeed());
Serial.printf("getSketchSize= %d bytes\n",ESP.getSketchSize()); //250128
 delay(10);
 Serial.printf("getFreeSketchSpace= %d bytes\n",ESP.getFreeSketchSpace()); //13631488 bytes
 delay(10);
 Serial.printf("getSketchMD5= %s \n",ESP.getSketchMD5().c_str());//acaaaa867e2263c1f83c0daef8474855
 delay(10);
 uint32_t flash_Size = ESP.getFlashChipSize(); 
 Serial.printf("getFlashChipSize= %d \n",flash_Size); //16777216
delay(10);
 Serial.printf("getFlashChipSpeed= %d \n",ESP.getFlashChipSpeed()); //80000000
 delay(10);
 FlashMode_t flash_Mode = ESP.getFlashChipMode();
 Serial.printf("Flash mode:  %s\n", (flash_Mode == FM_QIO ? "QIO" : flash_Mode == FM_QOUT ? "QOUT" : flash_Mode == FM_DIO ? "DIO" : flash_Mode == FM_DOUT ? "DOUT" : "UNKNOWN"));
 delay(1000);

}

项目使用了 237250 字节,占用了 (5%) 程序存储空间。最大为 4194304 字节。
全局变量使用了10216字节,(3%)的动态内存,余留317464字节局部变量。最大为327680字节。
  • 串口打印信息
    在这里插入图片描述

配置方法和过程

  • 首先确定手上的开发板硬件配置,也就是flash容量大小,需要确定,才能进一步进行分区表配置,可以通过上面的示例代码烧录后,查看串口打印信息,可以看到flash容量,
  1. 找到Arduino框架下的ESP32固件分区表文件位置:C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\tools\partitions

该文件夹下有不同容量的分区表,
在这里插入图片描述

  1. 找到ESP32主板信息文件位置:C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6
    在这里插入图片描述
  2. 打开Boards.txt,文件,找到esp32C3型号位置
    在这里插入图片描述
  3. 根据前面的分区表文件夹的不同配置文件,添加配置信息到Boards.txt文件中的对应型号位置

例如;我将合宙esp32C3的外置spi flash替换成了16MB的了,我的分配方案;

esp32c3.menu.PartitionScheme.app4M_spiffs12M=16M Flash (4MB APP/12MB SPIFFS)
esp32c3.menu.PartitionScheme.app4M_spiffs12M.build.partitions=app4M_spiffs12M
esp32c3.menu.PartitionScheme.app4M_spiffs12M.upload.maximum_size=4194304

在这里插入图片描述

  • Arduino IDE 菜单下看到的内容就是:
    在这里插入图片描述
  • 里面有很多配置方案,可以依照里面现有的配置,依葫芦画瓢即可。

分区表当然也可以根据个人需求自定义调整分区容量,分配时注意:总容量不能大于flash自身容量,一般只需调整用户代码区(app0)大小和SPIFFS或者FATFS,前面的NVSotadata建议不要动。

在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值