Перейти к содержанию
    

Помогите с ESP8266 ( ESP-WROOM-02 )

Нужна помошь клуба.

Занимаемся с напартником одним проектом, собственно 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). Результат аналогичный.

Куда рыть?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Allregia said:

Куда рыть?

ИМХО, первым делом выбросить ардуину, и собрать то же самое в SDK (esp-idf).

 

1 hour ago, Allregia said:

2) делаем из вебвервера бинарник, при помощи mkspiffs

Из вебсервера, или все же его наполнения?

 

1 hour ago, Allregia said:

3) обединяем бинарник фирмваре из ардуины с этим бинарником, получаем общий бинарник на 2МВ.

Каким образом, как все это соотносится с таблицей разделов флеш?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, aaarrr said:

ИМХО, первым делом выбросить ардуину, и собрать то же самое в SDK (esp-idf).

С превеликим удовольтсвием, лично меня от нее тошнит. И это будет сделано, но сейчас нам надо максимально быстро просто "попробовать".

 

И в ней-то как раз все работает.

 

 

1 hour ago, aaarrr said:

Из вебсервера, или все же его наполнения?

Наполнения, разумеется.

 

1 hour ago, aaarrr said:

Каким образом, как все это соотносится с таблицей разделов флеш?

Не знаю, потому и задал вопрос.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

52 minutes ago, Allregia said:

сейчас нам надо максимально быстро просто "попробовать"

Так там до "попробовать вебсервер" от силы часа 2-4 нужно. Ну день максимум. Возможно, разбираться с особенностями ардуины придется дольше.

 

5 hours ago, Allregia said:

Не знаю, потому и задал вопрос.

Надо посмотреть расположение и содержимое таблицы разделов. На ESP32 она обычно с адреса 0x8000 расположена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, Allregia said:

5) . . . . плюет в уарт свой IP, . . . .

Куда рыть ?

Если "плюет" понимать буквально, то это (возможно) отсылка в UART команд и данных без анализа ответа. Или его полного анализа.

Я бы сделал лог обмена Tx-Rx UART, возможно сравнив логи "хорошие" и "плохие" будет ясна причина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, Allregia said:

Это и сделали.

Я не про ардуино, на нормальный старт нужно не более дня.

 

6 minutes ago, Allregia said:

Где? 

Ну, я бы для начала на 0x8000 и глянул.

 

8 minutes ago, Allregia said:

Тут ESP8266.

Тут ардуина. Увы, не знаю, как ворошить этот черный ящик.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, aaarrr said:

Увы, не знаю, как ворошить этот черный ящик.

Ну может ответит тот кто знает. Я его тоже не знаю (и знать не хочу).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, совершенно точно установлено, что проблема не в дурдуине, SDK или ViualStudio Code, которым мы сейчас пользуемся, т.е не в фирмваре. Аа или генерации образа диска или в объединении его с фирваре в один бинарник.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 hours ago, x893 said:

Посмотреть примеры не пробовали ?

Вы знаете такой пример?

С удовольствием посмотрю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для начала гугл

https://www.google.com/search?q=asyncwebserver+example

затем

https://github.com/search?q=asyncwebserver

 

Можно две книжки купить в электричке

Google за 24 часа

Github за 24 часа

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверное у меня другой Гугл :)

Но я пока не нашел там ни ответа на свои вопрос, ни соответсвтующего примера.

Если В такой знаете - буду весьма благодарен за конкретную ссылку.

 

Вы сами делали то, о чем я спрашивал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 примеров

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...