uint32 ICACHE_FLASH_ATTR user_rf_cal_sector_set(void)
uint32 ICACHE_FLASH_ATTR
user_rf_cal_sector_set(void)
用户必须在程序中实现此函数,否则编译链接时会报错。但⽤用户程序⽆无需调⽤用此函数, SDK
底层会调⽤用它,将 RF_CAL 参数保存在⽤用户指定的 Flash 扇区⾥里里,这将占⽤用⽤用户参数区的⼀一个
扇区。
• SDK 预留留的 4 个扇区的系统参数区已经使⽤用,因此 RF_CAL 参数需要占⽤用到⽤用户参数区的空
间,由⽤用户通过此函数设置⼀一个可⽤用扇区供 SDK 底层使⽤用。
• 建议整个系统需要初始化时,或需要重新进⾏行行 RF_CAL 时,烧录 blank.bin 初始化 RF_CAL 参
数区,并烧录 esp_init_data.bin。
***注意, esp_init_data.bin ⾄至少需要烧录⼀一次。
例:
将 RF 参数设置存放在 Flash 倒数第 5 个扇区
uint32 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 = 512 - 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;
}
****************