Общие баги/глюки/проблемы в пакете Sming

я привел команду как под юнихами пересобрать сминговскую либу и утилиту для создания файловых образов spiffy. как то же сделать в виндовс не подскажу.. но скорее всего просто перейти в каталог, как я указал и запустить make. потом make spiffy или одной строкой - make rebuild spiffy и оно все соберет, коль у Вас настроено УЖЕ окружение сборки..
 

glonium

New member
Можно в eclipse запустить цель all для smingframework а потом цель spiffy для него же
 

illifant

New member
Не совсем баг, но разное поведение. В функции digitalWrite для GPIO16 идет [inline](val & 1)[/inline], а для остальных [inline](val != LOW)[/inline]. В результате [inline]digitalWrite(14, 2)[/inline] и [inline]digitalWrite(16, 2)[/inline] имеют разный эффект
 

Symrak

New member
По неизвестной причине, код следующего типа отрабатывает по-разному, если его вызывать в init() (даже в виде какой-то функции функции) или по какому-то событию во время работы системы.
В случае вызова кода/метода не из init() IP адрес остается 192.168.4.1, а не заменяется на указанный (10.0.0.1).
Код:
WifiAccessPoint.enable(true);
WifiAccessPoint.config(ap_wifi_ssid, ap_wifi_pwd, AUTH_WPA2_PSK);
WifiAccessPoint.setIP(IPAddress(10, 0, 0, 1));
 

SamGold

New member
Есть проблема с DOS атакой на HttpServer. А именно: если зажать F5 в браузере, то модуль падает по WDT. Можно ли как-то ограничить количество соединений, чтобы этого не происходило? То есть, пока страницу не отдал или предыдущий запрос не очистился по таймауту чтобы на новые запросы не реагировал.
 

ZaitsevY

New member
Похоже на баг: зачем в этом цикле сдвиг [inline]gpio_status[/inline]-а?

SmingCore/Interrupts.cpp:122
Код:
for (uint8 i = 0; i < ESP_MAX_INTERRUPTS; i++, gpio_status<<1)
 

Petrynchyn

New member
HTTP Server не отвечает если обратиться на внешний IP с перебросом портов в NAT. В какую сторону копать?
 

Def461

New member
HTTP Server не отвечает если обратиться на внешний IP с перебросом портов в NAT. В какую сторону копать?
Копать в сторону правильности проброса портов, т.к. у меня сминговые датчики работают почти год через Микротик с проброшенными портами. По НТТР.
 

Petrynchyn

New member
Копать в сторону правильности проброса портов, т.к. у меня сминговые датчики работают почти год через Микротик с проброшенными портами. По НТТР.
Переброс портов работает хорошо с другими серверами (apache, rdesktop, ...). Рутер DrayTek Vigor 3200 и также не работает на WiFi рутере TP-LINK.
Тестировал на примере Basic_WebSkeletonApp и esp_rgbww_firmware.
 

Petrynchyn

New member
HTTP Server не отвечает если обратиться на внешний IP с перебросом портов в NAT. В какую сторону копать?
Получил ответ через github от Alexander V. Ribchansky
Это пока нерешаемый или почти не решаемый вопрос. Ограничение закрытого кЕтай SDK. проблема с MTU жестко вкомпиленом в сетевую библиотеку. Есть либа сменьшим (но на сей раз ЧЕРЕЗЧУР маленьким 536 байт) MTU с ней заводится система через инет но ооочень коряво. Возможно в RTOS SDK + SmingRTOS где LWIP открытый можно будет в эту сторону покопать.. у меня пока нет на это времени, но в планах решить этот вопрос ЕСТЬ :)
Я потестил пример Basic_WebSkeletonApp в SmingRTOS и там все работает.
 

Petrynchyn

New member
Обновил на сегодняшнюю версию Unofficial Development Kit for Espressif ESP8266 v2.1.0 от 17.08.2016 и SMING RTOS, при компиляции выдает:
Код:
15:36:35 **** Build of configuration Sming for project Basic_Blink ****
make all
C+ app/application.cpp
AR out/build/app_app.a
LD out/build/app.out
c:/Espressif/ESP8266_RTOS_SDK/lib\libmain.a(app_main.o): In function `flash_data_check':
(.irom0.text+0x54c): undefined reference to `user_rf_cal_sector_set'
c:/Espressif/ESP8266_RTOS_SDK/lib\libmain.a(app_main.o): In function `flash_data_check':
(.irom0.text+0x62d): undefined reference to `user_rf_cal_sector_set'
collect2.exe: error: ld returned 1 exit status
make: *** [out/build/app.out] Error 1
--------

Решыл добавлениум в файл c:\tools\Sming\sming\sming\appinit\user_main.cpp кода
Код:
extern "C" uint32 user_rf_cal_sector_set(void)
{
    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;

        default:
            rf_cal_sec = 0;
            break;
    }

    return rf_cal_sec;
}
 
Последнее редактирование:
Сверху Снизу