Re: Application Size in Flash
Posted: Thu Nov 18, 2021 5:59 am
Thank you for replying. Sounds like you can lead me to where I need to be.
I've been using the Arduino IDE for about ten years now. I'm guessing the flash partitioning is taken care of for me by the IDE via ...
As of last week I found there is finally a non-Linux solution via Visual Studio Code and PlatformIO to build on Windows. So, to answer your question, I am using the NonOS version... real Noob level. The only method I've had to add to my user_main.c so far, is...
I understand the first sector and last four sectors are reserved by Espressif lower-end usage. This routine simply defines where "I" want Espressif to put more Espressif controlled data calibrating the Radio RF settings. This example code puts it in the 5th sector from the end. I do also wonder where the Arduino IDE puts this??? I know they typically place the EEPROM library sector in this 5th from the last sector. Anyway... besides these six sectors, the rest is fair-game for me to place program, file systems and anything else I want.
By your last message, I should (be able to) define everything explicitly. I've "now" dug around in the folders in the projects I've got working and I don't see anything like a make file or a configuration file. I guess I must be using some default settings that PlatformIO has made. Since I'm using PlatformIO, I don't see an explicit Make file. All I've modified so far is the platformio.ini file.
Thank you for your help.
I've been using the Arduino IDE for about ten years now. I'm guessing the flash partitioning is taken care of for me by the IDE via ...
As of last week I found there is finally a non-Linux solution via Visual Studio Code and PlatformIO to build on Windows. So, to answer your question, I am using the NonOS version... real Noob level. The only method I've had to add to my user_main.c so far, is...
Code: Select all
uint32 ICACHE_FLASH_ATTR user_rf_cal_sector_set(void)
{
enum flash_size_map size_map = system_get_flash_size_map();
uint32 rf_cal_sec = 0;
switch (size_map) {
case FLASH_SIZE_4M_MAP_256_256:
rf_cal_sec = 128 - 5;
break;
case FLASH_SIZE_8M_MAP_512_512:
rf_cal_sec = 256 - 5;
break;
case FLASH_SIZE_16M_MAP_512_512:
case FLASH_SIZE_16M_MAP_1024_1024:
rf_cal_sec = 512 - 5;
break;
case FLASH_SIZE_32M_MAP_512_512:
case FLASH_SIZE_32M_MAP_1024_1024:
rf_cal_sec = 1024 - 5;
break;
case FLASH_SIZE_64M_MAP_1024_1024:
rf_cal_sec = 2048 - 5;
break;
case FLASH_SIZE_128M_MAP_1024_1024:
rf_cal_sec = 4096 - 5;
break;
default:
rf_cal_sec = 0;
break;
}
return rf_cal_sec;
}
I understand the first sector and last four sectors are reserved by Espressif lower-end usage. This routine simply defines where "I" want Espressif to put more Espressif controlled data calibrating the Radio RF settings. This example code puts it in the 5th sector from the end. I do also wonder where the Arduino IDE puts this??? I know they typically place the EEPROM library sector in this 5th from the last sector. Anyway... besides these six sectors, the rest is fair-game for me to place program, file systems and anything else I want.
By your last message, I should (be able to) define everything explicitly. I've "now" dug around in the folders in the projects I've got working and I don't see anything like a make file or a configuration file. I guess I must be using some default settings that PlatformIO has made. Since I'm using PlatformIO, I don't see an explicit Make file. All I've modified so far is the platformio.ini file.
Code: Select all
[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = esp8266-nonos-sdk
build_flags = -I include
monitor_speed = 115200
upload_speed = 921600
Thank you for your help.