• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Ошибка линкера в eclipse

af1283

New member
Пытаюсь собрать проект примера работы с sd-картой, который был сделан, видимо, под старую версию sdk. То ли я такой криворукий, то ли одно из двух, но никак не могу победить многочисленные ошибки в Eclipse.
Теперь вот осталась ошибка линкера:
LD build/app.out
c:/Espressif/ESP8266_SDK/lib\libmain.a(app_main.o): In function `flash_data_check':
(.irom0.text+0x760): undefined reference to `user_rf_cal_sector_set'
 

Victor

Administrator
Команда форума
undefined reference to `user_rf_cal_sector_set'
просто вставляете эту функцию в [inline]user_init[/inline]
Код:
/******************************************************************************
* FunctionName : user_rf_cal_sector_set
* Description  : SDK just reversed 4 sectors, used for rf init data and paramters.
*                We add this function to force users to set rf cal sector, since
*                we don't know which sector is free in user's application.
*                sector map for last several sectors : ABBBCDDD
*                A : rf cal
*                B : at parameters
*                C : rf init data
*                D : sdk parameters
* Parameters   : none
* Returns      : rf cal sector
*******************************************************************************/
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 - 8;
            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;
}
 

af1283

New member
@Victor
Большое спасибо. Я так понимаю, это всё опыт - сын ошибок трудных? Или надо было смотреть мануал по sdk или ещё я где недосмотрел?
 
Сверху Снизу