• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Освоение ESP8266 в UDK новичком шаг за шагом

Penchev

New member
Здравствуйте! Пытаюсь запустит UDK по этой инструкции Анонсы Unofficial Development Kit for Espressif ESP8266.
В итоге что то в Eclipse c путями выдает 94 ошибки.
В консоль пишет
Error: Program "mingw32-make.exe" not found in PATH
PATH=[\bin;\bin;\usr\bin;C:/Program Files/Java/jre1.8.0_121/bin/client;C:/Program Files/Java/jre1.8.0_121/bin;C:/Program Files/Java/jre1.8.0_121/lib/i386;C:\Documents and Settings\All Users\Application Data\Oracle\Java\javapath;C:\Program Files\STMicroelectronics\st_toolset\asm;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Skype\Phone\;C:\eclipse]

11:38:46 Build Finished (took 16ms)
Из непонятного, При установке minGW галочки "без GUI" нет.
Далее запустил install-mingw-package.bat, что он делает не видно скачал не скачал, не понятно.
Подскажите пожалуйста, что поправить.
 

Вложения

  • 77.7 KB Просмотры: 14
  • 38 KB Просмотры: 12
  • 54.9 KB Просмотры: 12
  • 69.5 KB Просмотры: 12
  • 94.2 KB Просмотры: 13
Последнее редактирование:

Penchev

New member
Нашел как добавить, ошибки в окне Project Explouer снялись, но не компилируется
13:16:38 **** Build of configuration Default for project hello_world_cpp ****
Info: Configuration "Default" uses tool-chain "MinGW GCC" that is unsupported on this system, attempting to build anyway.
mingw32-make.exe -f C:/Espressif/examples/ESP8266/hello_world_cpp/Makefile all
ЋиЁЎЄ ў бЁв ЄбЁбҐ Є®¬ ¤л.
mingw32-make.exe: *** [build/driver] Error 1
../common_cpp.mk:279: recipe for target 'build/driver' failed
 

Penchev

New member
Так никто не подскажет?
в консоли
21:46:38 **** Build of configuration Default for project hello_world ****
Info: Configuration "Default" uses tool-chain "MinGW GCC" that is unsupported on this system, attempting to build anyway.
mingw32-make.exe -f C:/Espressif/examples/ESP8266/hello_world/Makefile all
ЋиЁЎЄ ў бЁв ЄбЁбҐ Є®¬ ¤л.
../common_nonos.mk:279: recipe for target 'build/driver' failed
mingw32-make.exe: *** [build/driver] Error 1

21:46:38 Build Finished (took 93ms)

problems

mingw32-make.exe: *** [build/driver] Error 1 hello_world C/C++ Problem
recipe for target 'build/driver' failed hello_world line 279 C/C++ Problem

install-mingw-package.bat узнал так и ничего не качает...
 

nikolz

Well-known member
попробуйте обновить с помощью MinGW insnaller и добавить им пакеты для СИ
 
теперь когда светодиодом ZAMORGALITY и "Шалом планета!" НАПИСАЛИТY переходим к поднятию веб-сервера на модуле.
путём опроса всех доступных Гуру был получен ответ что так просто это не получится... но не боги горшки обжигают.
процитирую Гуру
ESP это не Arduino, тут все сложнее и просто так с наскока Вы ничего толкового не сделаете, помимо знания Эклипса нужно еще знать Си и уметь читать документацию от Espressif
Готового простого web-сервера из 3-х строчек для ESP увы нет, хотя есть как минимум 2 реализации web-сервера:
github.com/israellot/esp-ginx — проект заглох в конце 2015
github.com/Spritetm/esphttpd — тоже подзаглох в 2016 году и он есть у меня в папке examples

Возможно Вам стоит посмотреть на прошивку NodeMCU (удобный сборщик прошивок nodemcu-build.com) где нужно уже писать не на Си, а на более простом Lua и где уже реализовано очень много всяких модулей для работы с датчиками и даже вроде web-сервер. (реализация web-сервера на Lua — randomnerdtutorials.com/esp8266-web-server)

Так же есть проект Arduino IDE для ESP8266 — esp8266.ru/arduino-ide-esp8266 где можно писать скретчи в привычной среде Arduino IDE и использую те же приемы.

Есть еще проект blynk ( www.blynk.cc/getting-started ) где на ESP ставится прошивка blynk, она подключается либо к облачному серверу, либо к вашему персональному и через него с помощью приложения на телефоне можно делать с ESP все что угодно, не только моргать светодиодом ;)
в результате выбор пал на esphttpd благо он есть в примерах.


и тут же столкнулся с проблемой что mingw с плагином xtensa-lx106-elf может заблокироваться антивирусом! путём запуска этого же самого набора софта на компе без антивируса всё заработало. модуль прошился.
и поднял точку доступа ESP_A68823
сижу с проблемой :
теперь у меня прошитый модуль вот только по адресу 192.168.4.1 все страницы 404 file not found.
при этом редиректы что прописаны в user_main.c HttpdBuiltInUrl builtInUrls[] отрабатывают .
в терминале модуль ругается «Call espFsInit first!» вот только судя по коду — он инит выолняет нормально!
что за пичаль — хз…
при этом такая петрушка не зависимо от выбора параметра OUTPUT_TYPE из трёх доступных.
OUTPUT_TYPE=separate
#OUTPUT_TYPE=combined
#OUTPUT_TYPE=ota

может я что-то неправильно делаю?
 
Теперь косяк с esphttpd подробно описанный в теме esphttpd -> артефакты на страницах . в чём косяк вылавливаю.

прочитано куча инфрмации
ответ:
в начале каждого файла html надо добавить строку
[inline]<!DOCTYPE html>[/inline]
и никаких артефактов!
 
Последнее редактирование:

Slacky

Member
Добрый день.

А может кто-то разъяснит что за что цепляется в user_main.c, в частности user_init() ...

Т.е. интересует структура построения своего кода ...

Примеры смотрел, не очень понял. Хотелось бы развернутых комментариев к вот этой выдержке из SDK
• The non-OS SDK does not implement user task scheduling like RTOS based systems do. The non-OS SDK uses four types of functions:
- Application functions
- Callback functions
- Interrupt service routines (ISRs)
- User tasks

Application functions refer to the usual type of C functions used in embedded C programming. These functions must be called by another function. Application functions may be attributed with ICACHE_FLASH_ATTR to fetch and execute programs from the flash. IRAM_ATTR-attributed functions are stored in the iRAM prior to execution.

Callback functions refer to functions that are not called directly from the user program. Callback functions are executed by the non-OS SDK core when a system event occurs. This enables the programmer to respond to real-time events without using RTOS or polling for events. To program a callback function, users first need to register the callback function using the corresponding register_cb API. Examples of callback functions include timer callback functions and network event callback functions. Interrupt Service Routines (ISRs) are simply callback functions of a special type.

These functions are called when a hardware interrupt occurs. When an interrupt is enabled, a corresponding interrupt handler functions must be registered. Note that ISRs must be attributed as IRAM_ATTR.

User tasks can be classified according to three priority levels: 0, 1, 2. Priority level has the following order: 2>1>0. Non-OS SDK can only support up to three tasks at a time. One priority level for one task. User tasks are normally used when a function cannot be called directly. To create a user task, please refer to the API description of system_os_task() in this document. For example, espconn_disconnect() API may not be called from within an espconn callback, therefore a user task must be created within the espconn callback to execute espconn_disconnect.

Спасибо.
 
Сверху Снизу