EspLua вместо NodeMCU

pvvx

Активный участник сообщества
Переключение контекстов уже давно сделано — странно что в NodeMCU его до сих пор не прикрутили (всего-то два файла добавить).
Например, в "ардурине", как Вы любите выражаться, все функции с блокирующим поведением переключают контекст на системный, и возврат в контекст скетча происходит по таймеру/коллбэку/событию. В lua вполне подойдет такая модель.
Подойдет, но надо внести массу исправлений, а время на это пока не было. Тем более я не программист (только постольку поскольку) - т.е. не совсем привычная среда для рода занятий....
 

pvvx

Активный участник сообщества
Привет, pvvx
залил bin файлы из
"EspLua.ru 1.1.2"
"build 20150702"
Постоянно горит синий светодиод, поток на UART:
Код:
0x00000000, excvaddr=0x00000000, depc=0x00000000
Fatal exception (0):
epc1=0x40200064, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Fatal exception (0):
что не правильно делаю?
Не знаю. Только что считал с https://github.com/pvvx/EspLua/tree/master/bin файлы и прошил FLASH_DOWNLOAD_TOOLS_v1.2 в модуль ESP-01.
Скорее всего у вас не та копия. В последней, более суток назад, много сменились. По ошибке похоже используется помесь старой версии iram_buf.c с новым загрузчиком.
 
pvvx,
Скорее всего у вас не та копия. В последней, более суток назад, много сменились. По ошибке похоже используется помесь старой версии iram_buf.c с новым загрузчиком.
скачал,
FLASH_DOWNLOAD_TOOLS_v1.2 в модули ESP-07/12/12e/12+128кб.
тоже самое.
в \bin есть еще файл "rapid_loader.bin",но
в readme.txt нет адреса его загрузки - может в этом причина?
 

pvvx

Активный участник сообщества
pvvx,

скачал,
FLASH_DOWNLOAD_TOOLS_v1.2 в модули ESP-07/12/12e/12+128кб.
тоже самое.
в \bin есть еще файл "rapid_loader.bin",но
в readme.txt нет адреса его загрузки - может в этом причина?
Нет - он уже включен в 0x00000.bin

Так - в проекте не хватало lib0main.a. Дополнил. В прошлый раз торопился и забыл его добавить. Но с ошибкой epc1=0x40200064 готовых bin это не связано (просто не соберется проект). Скомпилировал, прошил в Eclipse в ESP-01 - работает. Скоро проверю на ESP-12.

Проверил на ESP-12 - запускается и работает...
 
Последнее редактирование:
Так - в проекте не хватало lib0main.a. Дополнил.
Скачал сегодня - Bin-ы заработали.
модули: 07,12,12e,12+128м -ok.
Новый китайский борд с модулем 12E ( NodeMCU v2) не заработал - пока не понял:(.
на старте выдал:
на 74880
Код:
load 0x40100000, len 156, room 16
tail 12
chksum 0xef
csum 0xef
csum err
ets_main.c
Есть проблема с командой node.compile("set.lua")
файл в 2.9 кб вызывает перезагрузку.
запуск не большого (0,6 кбайт ) файла *.lc - вызывает перезагрузку.

Собрать проект самостоятельно как и до этого не получаеться 2 Errors.
Код:
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: cannot find -l0main
collect2.exe: error: ld returned 1 exit status
../Makefile:292: recipe for target '.output/eagle/debug/image/eagle.app.v6.out' failed
mingw32-make[1]: *** [.output/eagle/debug/image/eagle.app.v6.out] Error 1
mingw32-make[1]: Leaving directory 'D:/ESP8266_Projekt/EspLua-master/EspLua-master/app'
D:/ESP8266_Projekt/EspLua-master/EspLua-master/Makefile:240: recipe for target '.subdirs' failed
mingw32-make.exe: *** [.subdirs] Error 2
Использую : Espressif-ESP8266-DevKit-v2.0.6-x86.exe
что нужно исправить ?
 

pvvx

Активный участник сообщества
Новый китайский борд с модулем 12E ( NodeMCU v2) не заработал - пока не понял:(.
Там случаем не две flash?
Или есть проблема с работой на 80MHz QSPI из-за кривой разводки проводников SPI к Flash.
Тогда надо пробовать два варианта: программно корректировать CS у QSPI контроллера и понизить частоту. Но это всё надо делать в загрузчике rapid_loader, т.к. без него не загрузить все 48 к IRAM при старте. А пока он "бета" версии и у меня нет "китайский борд с модулем 12E ( NodeMCU v2)" и исходники rapid_loader не готовы для выкладывания (т.к. слеплено кое-как).
Есть проблема с командой node.compile("set.lua")
файл в 2.9 кб вызывает перезагрузку.
запуск не большого (0,6 кбайт ) файла *.lc - вызывает перезагрузку.
Там вроде беда со стеком. С новыми SDK он больше, чем используемым в SDK 0.9.6 (b1).
ld.exe: cannot find -l0main
У меня какие-то непонятки с git, вчера эту lib0main.a добавил, но что-то неверно в скриптах. https://github.com/pvvx/EspLua/commit/7fa9532b928aa6fb3edbf8ef5009fb955b778188
Обновил.
 
Последнее редактирование:
Там случаем не две flash?
Стоит обычная 12e - 32 мб. (пока не вскрывал крышку, но думаю все одно и тоже) ,
Выведены все порты 4d для SD карты.
схема 2-кнопки RES и Flash + 1-led, + cp2102.
+ хитрые 2 транзистора (логика) - RTS на Reset, DTR на GPIO0.

У меня на моем макете то же cp2102 без RTS на Reset, DTR на GPIO0.
Ставлю в свой макет 12е - работает!
на китайской плате нет.
Все остальные прошивки на китайской плате работают без проблем... :(?
 

pvvx

Активный участник сообщества
Ставлю в свой макет 12е - работает!
на китайской плате нет.
Варианта пока вижу два:
1) на шинах QSPI сидят какие-то неверные емкости или разводка.
2) Очень кривая flash - не работает на 80MHz и требует задержки перед выставлением CS (в общем тормоз и дешевка).
Надо корректировать - тормозить все настройки QSPI.
Проект Rapid_Loader (в виде как-есть :) ) cкинул.
Надо переписывать на asm, иначе пляски с бубном при изменении с согласованием адресов и лишние команды :)
 
Последнее редактирование:
Привет!
У меня какие-то непонятки с git, вчера эту lib0main.a добавил
закачал,
Собрать проект не получаеться 2 Errors, но другие
Код:
ValueError: invalid literal for int() with base 16: 'U'
mingw32-make[1]: *** [.output/eagle/debug/bin/eagle.app.v6.bin] Error 1
../Makefile:185: recipe for target '.output/eagle/debug/bin/eagle.app.v6.bin' failed
mingw32-make[1]: Leaving directory 'D:/ESP8266_Projekt/EspLua-master/EspLua-master/app'
D:/ESP8266_Projekt/EspLua-master/EspLua-master/Makefile:240: recipe for target '.subdirs' failed
mingw32-make.exe: *** [.subdirs] Error 2
 

pvvx

Активный участник сообщества
Привет!

закачал,
Собрать проект не получаеться 2 Errors, но другие
Код:
ValueError: invalid literal for int() with base 16: 'U'
mingw32-make[1]: *** [.output/eagle/debug/bin/eagle.app.v6.bin] Error 1
../Makefile:185: recipe for target '.output/eagle/debug/bin/eagle.app.v6.bin' failed
mingw32-make[1]: Leaving directory 'D:/ESP8266_Projekt/EspLua-master/EspLua-master/app'
D:/ESP8266_Projekt/EspLua-master/EspLua-master/Makefile:240: recipe for target '.subdirs' failed
mingw32-make.exe: *** [.subdirs] Error 2
Скопируйте esptool.py в C:\Espressif\utils\
Пока в UDK esptool.py имеет 2 уже известных ошибки с момента выхода последней версии.
 
Последнее редактирование:
Скопируйте esptool.py в C:\Espressif\utils\
помогло,
Наконец установил скорость по умолчанию 921600.;) - удобнее...

Варианта пока вижу два:
1) на шинах QSPI сидят какие-то неверные емкости или разводка.
2) Очень кривая flash - не работает на 80MHz и требует задержки перед выставлением CS (в общем тормоз и дешевка).
Не понятно, и эта сборка на китайской плате не работает, но
Ваш проект esp8266web-master34 на скорости 160мГц работает нормально.
и остальные прошивки работают - просто загадка.:rolleyes:?
 

pvvx

Активный участник сообщества
Не понятно, и эта сборка на китайской плате не работает, но
Ваш проект esp8266web-master34 на скорости 160мГц работает нормально.
и остальные прошивки работают - просто загадка.:rolleyes:?
CPU на 160 не значит, что QPSI на высокой частоте. Это не имеет никакой связи.
Тут при старте модуля включается x2 скорость шины QSPI. Затем уже в SDK корректируется PLL на кварц в 26MHz и в этот момент неизвестно есть ли сбои.
Ещё при старте, в зависимости от "подтяжек" ног модуля по разному отрабатывает инициализация SDK (и ROM-BIOS). Там выходит более десятка вариантов различных путей и ветвлений, приводящих к разным настройкам оборудования. Возможно в плате NodeMCU именно в этом отличия... Или там установлена flash из отбраковки - китайцы...
 
Или там установлена flash из отбраковки - китайцы...
не вопрос, давно собирался
- снес крышку, впаял фирменную 128,
не помогло.
Что у "кошечки" внутри:
чип.
372014
p17m97
Распайка платы схема есть, все как обычно Gpio 0/2/15/en -все правильно по 12 кОм .
res 12кОм / 470пф к +3,3в. кварц 26м.
не понятно.:(?
 
Залил в плату (NodeMCU v2 +128 mbit)- NodeMCU 0.9.6 build 20150704
все Oк
Код:
NodeMCU 0.9.6 build 20150704  powered by Lua 5.1.4
lua: cannot open init.lua
> =node.heap()
35128
> =node.info()
0    9    6    10851292    1589487    16384    2    40000000
>
Total : 14977421 bytes
Used  : 0 bytes
Remain: 14977421 bytes
 

pvvx

Активный участник сообщества
не вопрос, давно собирался
- снес крышку, впаял фирменную 128,
не помогло.
Что у "кошечки" внутри:
чип.
372014
p17m97
Распайка платы схема есть, все как обычно Gpio 0/2/15/en -все правильно по 12 кОм .
res 12кОм / 470пф к +3,3в. кварц 26м.
не понятно.:(?
сделал опцию лоадера на QSPI в 40MHz.
https://github.com/pvvx/Rapid_Loader/tree/master/bin rapid_loader_40m.bin
Скопируйте его в \EspLua\bin c переименованием в rapid_loader.bin и пересоберите прошивку.
 

pvvx

Активный участник сообщества
@Vladimir555:
Загрузка с rapid_loader_40m.bin:

ets Jan 8 2013,rst cause:1, boot mode: (3,7)
load 0x40100000, len 156, room 16
tail 12
chksum 0xa1
csum 0xa1


У rapid_loader.bin на 80MHz - контрольная сумма 0x71.
Что такое chksum 0xef ? И почему она не верна (csum err)? Что записано в начало flash?

cause:1 - это старт по питанию или пину CH_PD
cause:2 - это старт по пину reset

Вроде так, остальное совпадает (boot mode: (3,7))
 
Последнее редактирование:
У rapid_loader.bin на 80MHz - контрольная сумма 0x71.
Что такое chksum 0xef ? И почему она не верна? Что записано в начало flash?
пробовал писать кнопкой Flash из проекта и FLASH_DOWNLOAD_TOOLS_v1.2 одинаково.
грузит в память может быть не правильно?
какие еще выводы чипа могут повлиять на загрузчик?
 
Но это ROM-Bios грузит
Он же управляется сигналами с пинов 0,2,15 ?
Видимо в соединении модуля с платой что-то сделано кроме Gpio 0,2,15.
Это происходит только с этим проектом- остальные проекты грузятся без проблем, это засада.:)
В чем отличие Вашего проекта?
 
Последнее редактирование:
Сверху Снизу