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

EspLua вместо NodeMCU

c:\espressif\xtensa-lx106-elf\lib\gcc\xtensa-lx106-elf\5.1.0\include\stdarg.h
c:\Espressif\xtensa-lx106-elf\lib\gcc\xtensa-lx106-elf\4.8.2\include\stdarg.h
разахивировал заново, собрал в UDK 2.0.6 , залил в макет, работает.
Код:
EspLua.ru 1.2.0 build 20150710  powered by Lua 5.1.4
lua: cannot open init.lua
> =node.heap()
30208
спасибо,
есть проблема с загрузкой файлов Lua (через раз ошибка):
Код:
EspLua.ru 1.2.0 build 20150710  powered by Lua 5.1.4
> local FILE="init.lua" file.remove(FILE) file.open(FILE,"w+") uart.setup(0,9600,8,0,1,0)
> >> > > > > > > Waiting answer from ESP - Timeout reached. Command aborted.
...
> local FILE="http_index.lua" file.remove(FILE) file.open(FILE,"w+") uart.setup(0,9600,8,0,1,0)
> >> > > > > > > > > > > > > Waiting answer from ESP - Timeout reached. Command aborted.
 

pvvx

Активный участник сообщества
есть проблема с загрузкой файлов Lua (через раз ошибка):
Да - знаю, и с трансяляцией. Беда с тормозом Spifss на больших flash да самой Lua с методом коррекции чтения неправильных обращений к памяти IRAM и FLASH. Время ожидания в ESPlorer мало.
Используемый метод коррекции чтения данных делает из проца в 80MHz проц с частотой в десятки кГц (народу нравиться большое число свободной heap, а то что полный тормоз - пофигу) :) Время доступа к байту там несколько сотен команд CPU + прерывание. Этот метод, недодумав, навязал jcmvbkbc - ну его и вставили :) Теперь имеем, что имеем :(
С самой Lua я ещё не разбирался... Сначало надо найти пути как оптимизировать систему под неё и т.д...
 
Последнее редактирование:
Беда с тормозом Spifss на больших flash
да если ставлю 4мб модуль все работает быстро.
из компиляции не вылетает.
Код:
EspLua.ru 1.1.2 230400 build 20150702  powered by Lua 5.1.4
lua: cannot open init.lua
>
----------------------------
No files found.
----------------------------
>
Total : 113201 bytes
Used  : 0 bytes
Remain: 113201 bytes
Это все в BIOSе?
Не ужели китайцы драйвер для этой памяти написать не смогли.
Детская задача, даже под RTOS.
наверно накосячили QSPI в чипе, а теперь латают дырки:
метод коррекции чтения данных
ну да, мажоритарный и с матричным Хемингом как для бортовой аппаратуры.;) смешно...
 

pvvx

Активный участник сообщества
ну да, мажоритарный и с матричным Хемингом как для бортовой аппаратуры.;) смешно...
https://github.com/pvvx/EspLua/blob/master/app/user/user_exceptions.c#L45
Когда используется байтное обращении к памяти "кеша" flash или IRAM у CPU возникает прерывание по ошибке. В данном коде, коде прерывания эта ситуация разбирается, корректируется и возвращается с правильным "считанным" значением в программу за командой, которая произвела ошибку.
Побайтное обращение к строчкам текста и данным практически везде в коде SDK и ROM-BIOS. Когда данные лежат в области RAM, то её аппаратная организация позволяет читать побайтно с любого адреса, а "кэш" Flash и IRAM имеют другой доступ - только по 32 битным словам по адресам кратным 4-м. Но все данные констант перекинули в IRAM и в область кэша flash, т.к. писатели NodeMCU ничего не могут оптимизнуть. Кто-то (известно кто) им подсказал тупое решение. Данная примочка это дело и исправляет, за счет дикого падения производительности - на каждый байт целое прерывание + данный код.
Без этого данная стрепнина=NodeMCU уже не лезит давно никуда и heap-а нема. А с ней nikolz получает красивые цифры и радуется. Всё равно Lua полный тормоз и так, а с этим ещё тормознее примерно более чем в 100 раз. Типа был проц на 80MHz, а стал на 800кГц Ну и что? :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Откуда берутся ошибочные чтения?
Ионизирующее излучение от Wi-Fi.:)
Угу - ионизировало шины CPU и изменило его архитектуру.
Переназначило IRAM и кеш Flash для исполнения кода, а шину RAM оставило с побайтным доступом ещё на заре разработки lx106 Tensilica Inc. :)
Потом кто-то решил, что можно запихать данные в flash и специальной процедурой переносить их в RAM, а то протировка Lua кое-как никак не лезла в память чипа... Так и родилась NodeMCU за вечер, писанная путем копирования всего, что не попадя, без реальной портировки на данный чип. Зато народу нравиться :)
 
Последнее редактирование:
Угу - ионизировало шины CPU и изменило его архитектуру.
это весело... (самоадаптивная аппаратура для создания ИИ )
да, удалось ли что нибудь обнаружить в схеме борда v:1.0
может я проглядел?
почему же не работает Ваша прошивка?
 

pvvx

Активный участник сообщества
это весело... (самоадаптивная аппаратура для создания ИИ )
да, удалось ли что нибудь обнаружить в схеме борда v:1.0
может я проглядел?
почему же не работает Ваша прошивка?
Сто раз - стек у новых SDK больше, размер кода и занимаемой памяти тоже, алгоритм WDT другой, 50% процедур SDK новые и отличаются от дремучей бетта версии 0.9.6 используемой в NodeMCU. В 0.9.6 полный баг у процедур работы с TCP и куча других неисправимых ошибок.
Lua я не тороплюсь исправлять - она, кроме пары человек никому не нужна на ESP8266. Посмотрите по форуму - кто про неё вообще пишет, насчитаете пару человек которые в другом ничего пока не смыслят. А мигать светодиодом на Lua другим надоело.
 
Последнее редактирование:
Это понятно,
я хотел сказать, что на макете с ESP07-12e как-то работает а на демоБорде V:1.0 нет.
Может я в схеме V:1.0 не доглядел что нибудь "криминальное" - или только на заземление GPIO16 ?
 

pvvx

Активный участник сообщества
Может я в схеме V:1.0 не доглядел что нибудь "криминальное" - или только на заземление GPIO16 ?
Может детальное фото сделаете. Данная тема интереснее, чем Lua :)
По схеме - резистор в 12k на GPIO15 - это плохо. 100% надо меньше (можете проверить вольтметром с большим входным сопротивлением - при таком значении там уже не нуль, а почти "1").
Резистор в 12k на CH_PD - аналогично (можно вообще перемычку, но тогда его невозможно использовать для выключения чипа чем-то сторонним).
 
Последнее редактирование:

nikolz

Well-known member
Спасибо, ребята
Развеселили.
--------------------------
Вот пришло несколько свежих идей:
1) Надо еще рентген сделать, может китайцы что внутрь платы не так поставили
2) Еще хим анализ припоя надо сделать. Они наверное плохим припоем паяют. Надо все перепаять хорошим.
Так держать!!!
 
Спасибо, ребята
Развеселили.
{Припой поменяли при замене на 25q128. на ПОС 83
рентген разогреваем - позднее попробуем.
еще в плане послойный демонтаж топологии чипа, и проверка на чистоту пластин кремния.:) }
Если это брак было бы понятно,
но на ней не работает только сборка от Pvvx, остальные сборки работают.
на других модулях сборка от Pvvx работает, чуднО как-то...
 
Последнее редактирование:

pvvx

Активный участник сообщества
1) Надо еще рентген сделать, может китайцы что внутрь платы не так поставили
Вполне возможно, что от рентгена у данной платы все загрузки с контрольной суммой равной 0xEF.
@nikolz - у вас есть другие предположения, почему у данного модуля всегда контрольная сумма = 0xEF при загрузке разных "лоадеров" ?
 
Сверху Снизу