У меня тоже вопрос про Makefile. Заюзал grunt чтобы собирать webgui для проекта - куда вставить вызов команды чтобы перед заливкой файлов(сборкой spiff image) запускался grunt ?
Добрый день. Переустановил виндовс и снова проблема, не компилируются примеры.
21:57:51 **** Build of configuration Sming for project Basic_Blink ****
make all
LD out/build/app.out
c:/Espressif/ESP8266_SDK/lib\libmain.a(app_main.o): In function `user_uart_wait_tx_fifo_empty':
(.irom0.text+0x340): undefined reference to `user_rf_pre_init'
c:/Espressif/ESP8266_SDK/lib\libmain.a(app_main.o): In function `user_uart_wait_tx_fifo_empty':
(.irom0.text+0x458): undefined reference to `user_rf_pre_init'
collect2.exe: error: ld returned 1 exit status
make: *** [out/build/app.out] Error 1
21:58:05 Build Finished (took 14s.641ms)
Ставил через команду
choco install sming -y, в настройках эклипс прописал, что ему опять не нравится непонятно
SMING_HOME C:\tools\sming\Sming
ESP_HOME C:\Espressif
"Починил" - переименовал папку с SDK, взял версию _110, но как правильно починить чтобы с последней версией работало?
Рано обрадовался, работают не все примеры, выдает теперь
22:25:16 **** Build of configuration Sming for project Basic_AirUpdate ****
make all
C+ /C/tools/sming/Sming/appinit/user_main.cpp
C+ app/application.cpp
AR out/build/app_app.a
LD out/build/app.out
out/build/app_app.a(application.o): In function `connectOk()':
c:/tools/sming/Sming/SmingCore/Boards.h:17: undefined reference to `StationClass::waitConnection(Delegate<void ()>)'
out/build/app_app.a(application.o): In function `init()':
C:\tools\sming\Basic_AirUpdate/app/application.cpp:41: undefined reference to `StationClass::waitConnection(Delegate<void ()>)'
collect2.exe: error: ld returned 1 exit status
make: *** [out/build/app.out] Error 1
22:25:19 Build Finished (took 3s.97ms)
Заработало, после добавления строчки extern "C" void __attribute__((weak)) user_rf_pre_init(void);
GFX, по последнему SDK кое что обновляли (буквально сегодня) можете протестировать на последней версии.
Но, имхо, не стоит гнаться за цифорками в китайских SDK, далеко не всегда вместе с ними следует реальная стабильность или функциональность. Кроме того, в наиболее проблемных моментах типа espconn, Sming и так уже предоставляет собственное решение. Так что возможно Вам вовсе не стоит торопиться переходить с версии 1.1.0, которая себя точно хорошо зарекомендовала.
Я тут про Memory Layout почитал, вроде разобрался.. Сейчас в Sming PROGMEM и сопутствующие функции являются просто заглушками, а что если заменить их на что-то примерно такое:
Я тут про Memory Layout почитал, вроде разобрался.. Сейчас в Sming PROGMEM и сопутствующие функции являются просто заглушками, а что если заменить их на что-то примерно такое:
Я тут про Memory Layout почитал, вроде разобрался.. Сейчас в Sming PROGMEM и сопутствующие функции являются просто заглушками, а что если заменить их на что-то примерно такое:
Тогда не работает объединение одинаковых констант и строк в имеющихся версиях gсс и от этого скоро ограничение в 1 Mегабайт "кешируемой" области от начала flash .
Все эти варианты - временные, для совместимости с Китай-глюко-SDK и с такими ухищрениями не работает более половины функций из SDK и либ gсс.
А зачем там, в прошивке, код sha1 ? Он есть в ROM-BIOS и работает.
Код в ROM-BIOS аналогичен этому.
Пример работы с ключом websocket.
base64enc_tab[] есть в RAM_BIOS: [HASHTAG]#define[/HASHTAG] base64enc_tab ((const uint8 * )(0x3FFFD600)) base64dec_tab тоже есть в RAM_BIOS, но только 128 символов.
Правда процедуры из ROM-BIOS с base64 не катят - они заточены для подпрограмм паролей WiFi, если работаем с WiFi управляемым ROM-BIOS в спец. "сикретном" режиме* ...
* "сикретном" для Espressif.
pvvx, да Вы правы, изначально я как раз планировал использовать встроенный в ROM хешер, но затем лень стало заморачиваться когда увидел несколько компактна данная реализация. Но думаю порефакторю эту часть, особенно если начну работу над HTTPS.
Компактна? Итоговый код не такой и компактный, да занимаете и так малую RAM
Тьфу, забыл, для УрДурино всё пойдет - там безразлично.
Надо перерабатывать LwIP - там много лишнего и много ресурса жрет, т.к. не адаптирован под архитектуру проца ESP8266. Не пробовали ещё странслировать только его и посмотреть итого?