• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

UDK: Общие баги/глюки/проблемы

pvvx

Активный участник сообщества
nodemcu-firmware + rapid_loader (48k IRAM)
https://yadi.sk/d/SZy5ff3Mhr3Kh
Код:
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFE8000|    3FFE8B4C|    2892
    rodata|           ReadOnly Data (RAM)|    3FFE8B4C|    3FFE8B54|       8
       bss|      Uninitialized Data (RAM)|    3FFE8B58|    3FFF1A80|   36648
      text|            Cached Code (IRAM)|    40100000|    4010A778|   42872
irom0_text|           Uncached Code (SPI)|    4020C000|    40264CAA|  363690
Total Used RAM : 39548
Free RAM : 42372
Free IRam : -10086
Код:
NodeMCU.ru 0.9.6 build 20150715  powered by Lua 5.1.4
lua: cannot open init.lua
> =node.heap()
34520
> --- "FS info"
Total : 68021 bytes
Used  : 0 bytes
Remain: 68021 bytes
 
nodemcu-firmware + rapid_loader (48k IRAM)
Привет!
Спасибо за завтрашний проект 20150715 :) сегодня 20150714.
собрался,
ESP07+25q32
При загрузке в конце выдал ошибку:
Код:
Exception: Failed to connect
../Makefile:217: recipe for target 'progr' failed
mingw32-make[1]: *** [progr] Error 1
mingw32-make[1]: Leaving directory 'D:/ESP8266_Projekt/My_Project_Start/nodemcu-firmware.ru/nodemcu-firmware/app'
D:/ESP8266_Projekt/My_Project_Start/nodemcu-firmware.ru/nodemcu-firmware/Makefile:211: recipe for target 'flash' failed
mingw32-make.exe: *** [flash] Error 2
14:05:41 Build Finished (took 34s.656ms)
но ESP запустился. :(
Код:
NodeMCU.ru 0.9.6 build 20150715  powered by Lua 5.1.4
lua: cannot open init.lua
> =node.heap()
34520
>
Total : 3441461 bytes
Used  : 1384014 bytes
Remain: 2057447 bytes

> file.format()
format done.
>
Что, это?
Сам себе ответил:
нужно на демоборде удерживать кнопку GPIO0 до конца записи.
не очень удобно, ну ладно...
а на макете c ESP07 давать еще и RESET
используете RTS для RESET?
 
Последнее редактирование:
Залил на демобоард Nodemcu v1.0
Работать не хочет:
Код:
load 0x40100000, len 156, room 16
tail 12
chksum 0xef
csum 0xef
csum err
ets_main.c
Есть предположение:
на борде не работает 4-x проводной режим записи/чтения 25Q32
у Вас он используется ?
или ADDR_FW2 = 0x0C000
у всех других 0x10000
 
Последнее редактирование:
Результат моего Тест5 FS
Код:
NodeMCU.ru 0.9.6 build 20150715  powered by Lua 5.1.4
lua: cannot open init.lua
>
----------------------------
Test5.lua       : 437 bytes
x1.txt          : 1000000 bytes
x2.txt          : 511600 bytes
----------------------------
Total file(s)   : 3
Total size      : 1512037 bytes

> r,u,t=file.fsinfo() print("Total : "..t.." bytes\r\nUsed  : "..u.." bytes\r\nRemain: "..r.." bytes\r\n") r=nil u=nil t=nil
Total : 3441461 bytes
Used  : 1525327 bytes
Remain: 1916134 bytes
не зависла, вылетела нормально.
 

CHERTS

Moderator
Команда форума
Это известно, что не в компиляторе. Но NodeMCU с SDK 0.9.6 (b1) никому не нужна, а в SDK 1.2.0 предлагаемое исправление не пойдет.

@CHERTS - совершенно не ясно, зачем в UDK ESP8266_SDK_095 и прочие старые глючные SDK, если они не используются. NodeMCU содержит все "инклуды" и "либы" в своем проекте. Зачем в маке NodeMCU стоит
SDK_BASE ?= c:/Espressif/ESP8266_SDK_095 ?
Впрочем там и так много лишнего и итого всё равно не выходит. Позже попробую дать исправления, чтобы транслировался и работал пример C:\Espressif\examples\nodemcu-firmware...
А затем, что Espressif какой нить да прикол выдаст, например такой -> http://www.esp8266.com/viewtopic.php?f=9&t=820&start=300#p23253
Прикол в том, что начиная c SDK > 1.0.1 ни один C++ пример не работает, сплошные экзепшены при старте ESP, вот для этого у меня и лежат старые SDK, поменял в Makefile переменную SDK_BASE и хоть как-то можно решить проблему.

Возможно jcmvbkbc, подскажет где собака порылась с примерами hello_world_cpp и hello_world_cpp_2, компилятор тут точно не причем, дело в SDK.
 

pvvx

Активный участник сообщества
А затем, что Espressif какой нить да прикол выдаст, например такой -> http://www.esp8266.com/viewtopic.php?f=9&t=820&start=300#p23253
Прикол в том, что начиная c SDK > 1.0.1 ни один C++ пример не работает, сплошные экзепшены при старте ESP, вот для этого у меня и лежат старые SDK, поменял в Makefile переменную SDK_BASE и хоть как-то можно решить проблему.
Но это никак не относится к примеру NodeMCU. В нем SDK_BASE вообще не используется и указания 'инклудов' для Eclipse в каталоги на C:/xxxx там у вас не верны. У неё "всё с собой" в папке проекта. Из-за этого возникают ошибки и путаница. Вызываете описание, а оно вылезает из C:/xxxx, а не из проекта.
И в чем беда, что вектора перенесли в IRAM? (это вопрос по вашей ссылке). Влиять на CИ или C++ это не может. Или ошибки в общей выбранной концепции построения make и ld.
Поменялась система WDT в SDK - это больше влияет на другие проекты, т.к. не могут это осознать, а старые решения сброса WDT через регистр не проходят. Но в последней версии SDK 1.2.0 китайцы добавили для таких системную команду отключения WDT...
Я бы на месте китайцев поставил бы "оконную" систему подтверждения WDT, когда возможность подтвердить WDT возможна только в узком промежутке времени и с высшим приоритетом, да с засылкой спец кода, который зависит от прошлого. И если пытаться влезть в не то время, то - перезагруз. Да завязал бы с другими жизненно важными процедурами системы. Иначе это не WDT, а жалкое подобие и использование возможностей чипа на 1%.
Возможно jcmvbkbc, подскажет где собака порылась с примерами hello_world_cpp и hello_world_cpp_2, компилятор тут точно не причем, дело в SDK.
Тут подсказать не могу - я C++ на ESP8266 не занимаюсь и не считаю правильным его использование при таких аппаратных ограничениях. Не люблю полумеры.
 
Последнее редактирование:

jcmvbkbc

New member
А затем, что Espressif какой нить да прикол выдаст, например такой -> http://www.esp8266.com/viewtopic.php?f=9&t=820&start=300#p23253
Прикол в том, что начиная c SDK > 1.0.1 ни один C++ пример не работает, сплошные экзепшены при старте ESP, вот для этого у меня и лежат старые SDK, поменял в Makefile переменную SDK_BASE и хоть как-то можно решить проблему.

Возможно jcmvbkbc, подскажет где собака порылась с примерами hello_world_cpp и hello_world_cpp_2, компилятор тут точно не причем, дело в SDK.
Начнём с того, что скриптов линковщика для С++ нет ни в ESP8266_SDK_101/ld ни в ESP8266_SDK_110/ld, поэтому надо бы уточнить, как люди рапортующие проблемы выполняют линковку.
Если же эти скрипты изготовить из имеющегося там файла eagle.app.v6.ld по известному рецепту, например, применяя следующий дифф:
Код:
--- eagle.app.v6.ld     2015-07-13 19:52:17.780468942 +0300
+++ eagle.app.v6.cpp.ld 2015-07-15 03:32:42.516144097 +0300
@@ -101,11 +101,14 @@
     *(.gnu.linkonce.e.*)
     *(.gnu.version_r)
     *(.eh_frame)
+    . = (. + 3) & ~ 3;
     /*  C++ constructor and destructor tables, properly ordered:  */
+    __init_array_start = ABSOLUTE(.);
     KEEP (*crtbegin.o(.ctors))
     KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
     KEEP (*(SORT(.ctors.*)))
     KEEP (*(.ctors))
+    __init_array_end = ABSOLUTE(.);
     KEEP (*crtbegin.o(.dtors))
     KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
     KEEP (*(SORT(.dtors.*)))
то у меня всё работает, и с 1.0.1 и c 1.1.0. Мммм?
 

nikolz

Well-known member
добрый день,
проблема сборки nodemcu решается просто.
Секрет в том, что используется другой загрузчик. Он есть в исходниках.
-----------------------
я сделал так :
переименовал его,
поместил в utils,
и добавил в майк следующие строки:
------------------------------------
ROOT=c:/Espressif
SPI_SIZE=4096
SDK_TOOLS = $(ROOT)/utils
ESPTOOL = C:/Python27/python.exe $(SDK_TOOLS)/esptool_4.py
-------------------------
чтобы не искали прикрепил этот файл
Всем хорошего настроения
 

Вложения

Tomahawk

New member
v2.0.7 у меня компилирует и прошивает, но потом не работает (gnu90 ставил), откатил до v2.0.6 - пришло всё в норму.
 

Tomahawk

New member
CHERTS, не поднимается AP на модуле (пример esphttpd). А на 2.0.6 точка доступа поднимается сразу в такой же ситуации.
p.s.: AP становится видимой как только прошьём blank.bin и esp_init_data_default.bin После сброса питания или ресетом точка доступа пропадает насовсем, пока снова не прошьём этими двумя файлами. Это чем-нибудь лечится?)
 
я сделал так :
переименовал его,
поместил в utils,
и добавил в майк следующие строки:
Помогло, работает.
Спасибо.

В конце записи модуля вот такая ошибка:
Код:
Exception:
File "c:/Espressif/utils/esptool_4.py", line 502, in <module>
  esp.connect()
  File "c:/Espressif/utils/esptool_4.py", line 157, in connect
  raise Exception('Failed to connect')
Exception: Failed to connect
../Makefile:211: recipe for target 'progr' failed
mingw32-make[1]: Leaving directory 'C:/Espressif/examples/nodemcu-firmware/app'
mingw32-make[1]: *** [progr] Error 1
C:/Espressif/examples/nodemcu-firmware/Makefile:205: recipe for target 'flash' failed
mingw32-make.exe: *** [flash] Error 2
10:31:10 Build Finished (took 55s.484ms)
но, прошивка запускается.
и просит GPIO0 на землю.
как убрать эти команды перезапуска.
или соединять RTS DTR.
понимаю, чистит инит.
Код:
Leaving...
C:/Python27/python.exe c:/Espressif/utils/esptool_4.py -p COM2 -b 115200 write_flash -ff 40m -fm qio -fs 32m 0x7c000 ..//bin//esp_init_data_default.bin 0x7e000 ..//bin//blank.bin
Connecting...
Erasing flash...

Writing at 0x0007c000... (100 %)
Erasing flash...

Writing at 0x0007e000... (25 %)
Writing at 0x0007e400... (50 %)
Writing at 0x0007e800... (75 %)
Writing at 0x0007ec00... (100 %)

Leaving...
mingw32-make[1]: Leaving directory 'C:/Espressif/examples/nodemcu-firmware/app'

10:36:12 Build Finished (took 54s.812ms)
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Начнём с того, что скриптов линковщика для С++ нет ни в ESP8266_SDK_101/ld ни в ESP8266_SDK_110/ld, поэтому надо бы уточнить, как люди рапортующие проблемы выполняют линковку.
Они есть в C:\Espressif\extra\ld\ и примеры hello_world_cpp и hello_world_cpp_2 и hello_world_cpp_irom используют их, но это не спасает.

P.S. Проблема с hello_world_cpp решилась путем исправления файлов из C:\Espressif\extra\ld\, @jcmvbkbc, огромное спасибо!
 
Последнее редактирование:

jcmvbkbc

New member
Они есть в C:\Espressif\extra\ld\ и примеры hello_world_cpp и hello_world_cpp_2 и hello_world_cpp_irom используют их, но это не спасает.
Эээмм... Конечно не спасает: скрипты же разные в разных версиях SDK. Примени мой патч к скрипту из ESP8266_SDK_110/ld и зацени отличия?
 

DarkSide

New member
Не могу собрать тулчейн в версии v2.0.8
При компиляции (build-xtensa-lx106-elf.sh) выдает следующую ошибку:
Код:
c:/esp8266-devkit/Espressif/dl/gcc-xtensa/build-2/xtensa-lx106-elf/libstdc++-v3/include/cstdint:78:11: error: 'uint_leas
t32_t' is already declared in this scope
   using ::uint_least32_t;
           ^
make[4]: *** [xtensa-lx106-elf/bits/stdc++.h.gch/O2ggnu++0x.gch] Error 1
make[4]: Leaving directory `/c/esp8266-devkit/Espressif/dl/gcc-xtensa/build-2/xtensa-lx106-elf/libstdc++-v3/include'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/c/esp8266-devkit/Espressif/dl/gcc-xtensa/build-2/xtensa-lx106-elf/libstdc++-v3'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/c/esp8266-devkit/Espressif/dl/gcc-xtensa/build-2/xtensa-lx106-elf/libstdc++-v3'
make[1]: *** [all-target-libstdc++-v3] Error 2
make[1]: Leaving directory `/c/esp8266-devkit/Espressif/dl/gcc-xtensa/build-2'
make: *** [all] Error 2
Как побороть?
 

jcmvbkbc

New member
Не могу собрать тулчейн в версии v2.0.8
При компиляции (build-xtensa-lx106-elf.sh) выдает следующую ошибку:
Код:
c:/esp8266-devkit/Espressif/dl/gcc-xtensa/build-2/xtensa-lx106-elf/libstdc++-v3/include/cstdint:78:11: error: 'uint_least32_t' is already declared in this scope
Как побороть?
https://raw.githubusercontent.com/j...-t-bring-extra-u-int_least32_t-into-std.patch
 

aloika

Active member
Что может быть - не собирается проект на другом (не основном моем) компьютере:

Код:
00:57:47 **** Build of configuration Default for project Web_Base ****
mingw32-make.exe -f C:/Karpesh/ESP8266/UARTCommander3/Makefile all
mingw32-make[1]: Entering directory 'C:/Karpesh/ESP8266/UARTCommander3/app'
mingw32-make[2]: Entering directory 'C:/Karpesh/ESP8266/UARTCommander3/app/main'
mingw32-make[2]: Leaving directory 'C:/Karpesh/ESP8266/UARTCommander3/app/main'
mingw32-make[2]: *** No rule to make target 'c:\espressif\xtensa-lx106-elf\lib\gcc\xtensa-lx106-elf\4.8.2\include\stdarg.h', needed by '.output/eagle/obj/wdt.o'.  Останов.
../Makefile:154: recipe for target '.subdirs' failed
mingw32-make[1]: *** [.subdirs] Error 2
mingw32-make[1]: Leaving directory 'C:/Karpesh/ESP8266/UARTCommander3/app'
C:/Karpesh/ESP8266/UARTCommander3/Makefile:154: recipe for target '.subdirs' failed
mingw32-make.exe: *** [.subdirs] Error 2

00:57:51 Build Finished (took 3s.719ms)
Подскажите, плиз, если это возможно сделать по этому логу...
 
Сверху Снизу