• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 или ещё я где недосмотрел?
 
Сверху Снизу