【发布时间】:2020-05-14 22:27:35
【问题描述】:
尝试使用新的 esp-open-rtos (esp8266 sdk) 编译此代码但看到错误
app_main.c:446:10: error: variable 'size_map' has initializer but incomplete type enum flash_size_map size_map = system_get_flash_size_map();
uint32_t user_rf_cal_sector_set(void) {
enum flash_size_map size_map = system_get_flash_size_map();
uint32_t 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;
default:
rf_cal_sec = 0;
break;
}
return rf_cal_sec;
}
尝试使用 flash_size_map size_map = system_get_flash_size_map(); 但看到这个:
src/app_main.c:446:5: error: unknown type name 'flash_size_map' flash_size_map size_map = system_get_flash_size_map(); ^
【问题讨论】:
-
@B Jackson 使用 int 类型而不是枚举类型。或者在这个函数定义之前包含枚举的定义。编译器看不到枚举的定义。
-
你是否包含了定义
flash_size_map枚举的头文件?