Allregia 9 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба Нужна помошь клуба. Занимаемся с напартником одним проектом, собственно ESP это его часть, а моя - со стороны МК, так что я буду больше транслировать его вопросы. В самом девайсе модуль ESP-WROOM-02, подключен уартом к STM32F7, но пока мы используем для отладки борду с USB2COM+ESP, подключенную к компу. В ESP нужен Web-Server. Написана прошивка в ардуине (шорт бы ее побрал!) и примитивные веб-сервер для проверки. 1) прошиваем из Arduino IDE - все работет, модуль коннектиться с роутером, плюет в уарт свой IP, с другого компа (в той-же сети) можно по этому IP можно зайти на вебсервер. 2) делаем из вебвервера бинарник, при помощи mkspiffs 3) обединяем бинарник фирмваре из ардуины с этим бинарником, получаем общий бинарник на 2МВ. Spoiler программа для объединения простенькая: #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <time.h> #include <conio.h> #include <windows.h> // Declare variables and structures FILE *f, *fp, *ft; uint8_t rec[1048576]; uint64_t sz; //======================================================== //======================================================== int main(int argc, char **argv) { const uint8_t endStr[] = {0xaa, 0x55, 0xaa, 0x55, 0x97, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x55, 0xaa, 0x55, 0xaa }; clock_t t = clock(); time_t init = time(NULL); char * tString = ctime(&init); printf("\n PC time is %s", tString); printf(" Binary time is %d \n \n ", init); Sleep(500); //================================= f = fopen("firmWare.bin", "rb"); fp = fopen("srvrImage.bin", "rb"); if(fp == NULL || f == NULL) { printf(" \n Files missing for the job...\n"); printf(" \n put firmWare.bin & srvrImage.bin inside this dir\n"); Sleep(2500); exit(1); } ft = fopen("imageFull.bin", "wb+"); memset(rec, 0xFF, sizeof rec); // insert marks each 4 kB for(int i = 438527; i < sizeof rec; i += 4096) // first mark @ 428kB { rec[i] = rec[i - 1] = 0; rec[i - 2] = 0x04; rec[i - 3] = 0x29; } memcpy(rec + 1044749, endStr, sizeof endStr); fread(rec, sizeof rec, 1, f); fclose(f); fwrite(rec, sizeof rec, 1, ft); fread(rec, sizeof rec, 1, fp); fclose(fp); fwrite(rec, sizeof rec, 1, ft); fclose(ft); printf(" \n All done, bye!..\n"); Sleep(500); exit(1); } 4) шьем этот бинарник через flash_download_tools_v3.6.8.exe в модуль 5) включаем: модуль коннектиться с роутером, плюет в уарт свой IP, с другого компа (в той-же сети) пытаемся по этому IP зайти на вебсервер, и получаем ошибку "404", т.е. не видит он html на SPI-диске. 6) пробуем через flash_download_tools_v3.6.8.exe прошивать два бинарника, ардуиновский (с 0 адреса) и тот что от mkspiffs (с 0х100000). Результат аналогичный. Куда рыть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба 1 hour ago, Allregia said: Куда рыть? ИМХО, первым делом выбросить ардуину, и собрать то же самое в SDK (esp-idf). 1 hour ago, Allregia said: 2) делаем из вебвервера бинарник, при помощи mkspiffs Из вебсервера, или все же его наполнения? 1 hour ago, Allregia said: 3) обединяем бинарник фирмваре из ардуины с этим бинарником, получаем общий бинарник на 2МВ. Каким образом, как все это соотносится с таблицей разделов флеш? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба 1 hour ago, aaarrr said: ИМХО, первым делом выбросить ардуину, и собрать то же самое в SDK (esp-idf). С превеликим удовольтсвием, лично меня от нее тошнит. И это будет сделано, но сейчас нам надо максимально быстро просто "попробовать". И в ней-то как раз все работает. 1 hour ago, aaarrr said: Из вебсервера, или все же его наполнения? Наполнения, разумеется. 1 hour ago, aaarrr said: Каким образом, как все это соотносится с таблицей разделов флеш? Не знаю, потому и задал вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба 52 minutes ago, Allregia said: сейчас нам надо максимально быстро просто "попробовать" Так там до "попробовать вебсервер" от силы часа 2-4 нужно. Ну день максимум. Возможно, разбираться с особенностями ардуины придется дольше. 5 hours ago, Allregia said: Не знаю, потому и задал вопрос. Надо посмотреть расположение и содержимое таблицы разделов. На ESP32 она обычно с адреса 0x8000 расположена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба 8 hours ago, Allregia said: 5) . . . . плюет в уарт свой IP, . . . . Куда рыть ? Если "плюет" понимать буквально, то это (возможно) отсылка в UART команд и данных без анализа ответа. Или его полного анализа. Я бы сделал лог обмена Tx-Rx UART, возможно сравнив логи "хорошие" и "плохие" будет ясна причина. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба 3 hours ago, k155la3 said: Если "плюет" понимать буквально, то это (возможно) отсылка в UART команд и данных без анализа ответа. Разумеется. 3 hours ago, k155la3 said: Я бы сделал лог обмена Tx-Rx UART, возможно сравнив логи "хорошие" и "плохие" будет ясна причина. Там ничего не прописывали чтобы оно выводило. 3 hours ago, aaarrr said: Так там до "попробовать вебсервер" от силы часа 2-4 нужно. Ну день максимум. Это и сделали. 3 hours ago, aaarrr said: Надо посмотреть расположение и содержимое таблицы разделов. Где? 3 hours ago, aaarrr said: На ESP32 Тут ESP8266. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба 4 minutes ago, Allregia said: Это и сделали. Я не про ардуино, на нормальный старт нужно не более дня. 6 minutes ago, Allregia said: Где? Ну, я бы для начала на 0x8000 и глянул. 8 minutes ago, Allregia said: Тут ESP8266. Тут ардуина. Увы, не знаю, как ворошить этот черный ящик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба 1 hour ago, aaarrr said: Увы, не знаю, как ворошить этот черный ящик. Ну может ответит тот кто знает. Я его тоже не знаю (и знать не хочу). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба Видимо не только я не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 13 февраля, 2020 Опубликовано 13 февраля, 2020 · Жалоба В общем, совершенно точно установлено, что проблема не в дурдуине, SDK или ViualStudio Code, которым мы сейчас пользуемся, т.е не в фирмваре. Аа или генерации образа диска или в объединении его с фирваре в один бинарник. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 13 февраля, 2020 Опубликовано 13 февраля, 2020 · Жалоба Посмотреть примеры не пробовали ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 14 февраля, 2020 Опубликовано 14 февраля, 2020 · Жалоба 23 hours ago, x893 said: Посмотреть примеры не пробовали ? Вы знаете такой пример? С удовольствием посмотрю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 14 февраля, 2020 Опубликовано 14 февраля, 2020 · Жалоба Для начала гугл https://www.google.com/search?q=asyncwebserver+example затем https://github.com/search?q=asyncwebserver Можно две книжки купить в электричке Google за 24 часа Github за 24 часа Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 14 февраля, 2020 Опубликовано 14 февраля, 2020 · Жалоба Наверное у меня другой Гугл :) Но я пока не нашел там ни ответа на свои вопрос, ни соответсвтующего примера. Если В такой знаете - буду весьма благодарен за конкретную ссылку. Вы сами делали то, о чем я спрашивал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 14 февраля, 2020 Опубликовано 14 февраля, 2020 · Жалоба 26 minutes ago, Allregia said: Наверное у меня другой Гугл :) Но я пока не нашел там ни ответа на свои вопрос, ни соответсвтующего примера. Если В такой знаете - буду весьма благодарен за конкретную ссылку. https://github.com/spacehuhn/esp8266_deauther https://github.com/PureTek-Innovations/ESP32_FastLED_AsyncWebserver https://github.com/me-no-dev/ESPAsyncWebServer https://techtutorialsx.com/2018/01/01/esp8266-arduino-asynchronous-http-web-server/ https://randomnerdtutorials.com/esp8266-web-server-spiffs-nodemcu/ https://github.com/pvvx/esp8266web https://github.com/espressif/arduino-esp32/tree/master/libraries/WebServer и еще 100500 примеров Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться