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

EspLua вместо NodeMCU

Модифицировал Test5 до Test8.
Код:
--TEST8
local i=1
local n=1
fname="x1.txt"
--
function wr_file()
local n=1
--print("heap="..node.heap())
file.open(fname,"w")
while n<=10000  do
file.writeline(" X="..i.."  S="..n.."  0000000000000000000000000000000000000000000000000000000000000000000000000000000000")
tmr.wdclr()
n=n+1
print(n)
end
--file.flush()
file.close()
                  end
--
while i<=5 do
fname="x"..i..".txt"
print(fname)
wr_file()
i=i+1
end
Pезультат работы Test8.lua:
Код:
EspLua.ru 1.2.0 build 20150715  powered by Lua 5.1.4
lua: cannot open init.lua
>
----------------------------
Test8.lua       : 443 bytes
x1.txt          : 968894 bytes
x2.txt          : 968894 bytes
x3.txt          : 968894 bytes
x4.txt          : 968894 bytes
x5.txt          : 968894 bytes
----------------------------
Total file(s)   : 6
Total size      : 4844913 bytes

Total : 14932241 bytes
Used  : 4886468 bytes
Remain: 10045773 bytes
>
Наконец дождался считывания памяти 25q128...:)
Посмотрел дамп памяти:
esp128mT8.png
Вывод:
Пишет x1.txt правильно, x2.txt до половины,
потом все сектора только x2.txt!
Буду рад если эти тесты помогут разобраться с FS.;)
 
Решил посмотреть файлы после Test8 через ESPloer
Еще интереснее:
x2.txt - x5.txt читаются как не полные, а имена правильные!?
В общем чем дальше тем интереснее.
Уже не понятно кто глючит, FS, ESPloer, esptool.exe, или все вместе Windows.:(
Самое время перепаивать во вех модулях память на 512кбит, и говорить всем что все работает.:)

x2.txt
Код:
X=2  S=599  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=2  S=600  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=2  S=601  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=2  S=602  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=2  S=603  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=2  S=604  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=2  S=605  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
x5.txt
Код:
EspLua.ru 1.2.0 build 20150715  powered by Lua 5.1.4
lua: cannot open init.lua
> _view=function() local _line if file.open("x5.txt","r") then print("--FileView start") repeat _line = file.readline() if (_line~=nil) then print(string.sub(_line,1,-2)) end until _line==nil file.close() print("--FileView done.") else
print("\r--FileView error: can't open file") end end _view() _view=nil

X=5  S=1  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=2  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=3  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=4  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=5  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=6  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=7  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=8  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=9  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
...
X=5  S=2223  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=2224  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=2225  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
X=5  S=2226  0000000000000000000000000000000000000000000000000000000000000000000000000000000000
 
Последнее редактирование:

nikolz

Well-known member
Vladimir555,
провел исследование spiffs
могу Вас обрадовать,
данная файловая система
не сможет записать даже 8 Мбайт.
Вернее сказать -не дождетесь, когда закончится запись.
--------------------------------
1) 100 kB - 3 sec; .................... 33 Kb/s
2) первый MB -17 sec; .................. 59 Kb/s
3) второй MB - 220 sec;.............. 4.5 Kb/s
4) каждый следующий MB - 380 sec;..2.6Kb/s
 

pvvx

Активный участник сообщества
Запустил Test5 на ESP12 +25q128.
EspLua.ru 1.2.0 build 20150715 powered by Lua 5.1.4
lua: cannot open init.lua
---
Уже гораздо интереснее.
Я ещё не выкладывал версии с подправленным spiffs. Так что тесты на кривом spiffs бесполезны. Там всегда, если диск имеет более 40 сегментов возникает ошибка в его кэш...
Для просмотра что творится в разметке диске и была сделана команда file.fsstat().
 
Последнее редактирование:

pvvx

Активный участник сообщества
Для @nikolz про память 'heap' и его ор, что в СИ ничего не сделать:
Вот лог старта Web сервера в SDK 1.2.0 без всяких "примочек" типа чтения по протектед памяти:
Код:
Simple WEB version: 0.1.3
OpenLoaderSDK v1.2
Found free IRAM: base: 0x40104c90, size: 29552 bytes
System memory:
data  : 0x3ffe8000 ~ 0x3ffe858c, len: 1420
rodata: 0x3ffe8590 ~ 0x3ffe9264, len: 3284
bss   : 0x3ffe9268 ~ 0x3fff1e68, len: 35840
heap  : 0x3fff1e68 ~ 0x3fffc000, len: 41368
Current 'heap' size: 41120 bytes
Как видите heap достаточный, да + 28 килобайт свободной IRAM.
------
Очень хорошо, я и не сомневаюсь что доделаете, конечно подождем.
А я сомневаюсь, что возможно излечить Lua и spiffs.
Spiffs надо выкидывать - менять на то-то нормальное.
У Lua беды от "портировки" NodeMCU-шниками. Необходимо переписывать все алгоритмы работы Lua с системой и особенно с вводом/выводом. То, что понаписано NodeMCU-шниками имеет не только ошибки в СИ, но и ошибки в алгоритмах.
Как итог - требуется полностью новый проект с нуля, а я думал, что можно излечить имеющийся.
 
Последнее редактирование:
провел исследование spiffs
могу Вас обрадовать,
Посмотрите текущий build от Pvvx 20150715, там это уже исправлено,
в тесте это не уточнял, пишет быстро до конца чипа 32/128 с одинаковой скоростью, но пока есть проблемы см. Tests 5-8.
 

pvvx

Активный участник сообщества
Посмотрите текущий build от Pvvx 20150715, там это уже исправлено,
в тесте это не уточнял, пишет быстро до конца чипа 32/128 с одинаковой скоростью, но пока есть проблемы см. Tests 5-8.
Нечего там смотреть - допишет до определенного места и встанет навсегда. Далее будет всегда вываливаться, пока не форматнете диск.
Причины уже описаны. Чтобы сделать что-то нормальное требуется много времени, т.к. надо переписывать всё с нуля. На этой стадии и сижу - ищу варианты нормальной файловой системы... Может подскажите, какую и где стянуть?
Писать свою желание есть, но времени нет - лето....
 

pvvx

Активный участник сообщества
Скинул что есть на последний момент тестов. Скорость стоит по умолчанию 115200.
Излечить нельзя, но для учебных заведений каk-то довести наверное можно.
Базовый Lau можно более менее нормально портировать на ESP8266. Но извращение созданное ради рекламы = NodeMCU - неизлечимо.
 
Может подскажите, какую и где стянуть?
На счет других FS я уже писал варианты есть
например от ST (давно пользуюсь), но там проблема будет с либами, нет исходников - где то давно видел их в сети,
но не нужно было либами пользуюсь -там почти все без глюков.
от Microchip Technology
сами видели, если пользуетесь их утилитами.
В IAR есть примеры c FS.
да , и Ардунио уже для ESP - работает FAT32.
 

pvvx

Активный участник сообщества
На счет других FS я уже писал варианты есть
например от ST (давно пользуюсь), но там проблема будет с либами, нет исходников - где то давно видел их в сети,
но не нужно было либами пользуюсь -там почти все без глюков.
от Microchip Technology
сами видели, если пользуетесь их утилитами.
В IAR есть примеры c FS.
да , и Ардунио уже для ESP - работает FAT32.
Всё это не годиться для используемой Flash (большие накланые расходы или нет записи или не журналируемая система, или очередной тормоз, или ...).
Ардунио идет своим путем и скоро закончит как NodeMCU.
 
Но извращение созданное ради рекламы = NodeMCU - неизлечимо.
Китайцы немного финансировали старт проект ESP, продажи великолепные можно позавидовать, и Блинкеры довольны.
Все что называется OPEN - это для рекламы.
Но кто то должен двигать новые технологии.
 
Всё это не годиться для используемой Flash
Давайте "припаяем" SD, на "Тамагочи" интерфейс SDIO 4bit китайцы уже вывели (не пробовал еще).
к Ардунио проекту ESP цеплял SD по SPI 1 бит. -FAT32 работает, но медленно.
25q128 то - же работает по 4 битовому интерфейсу.;)
 

pvvx

Активный участник сообщества
25q128 то - же работает по 4 битовому интерфейсу.
Основа FS не в интерфейсе, а в том, что у нас сектора по 4 килобайта (минимальная стираемая область) и в том, что используемые на ESP8266 flash позволяют дозапись в сектор, а не как у других типов - запись только целого сектора. Это и задает основы построения FS с учетом кол-ва перезаписей каждого сектора (чтобы увеличить ресурс перезаписи). По этому FS для SD не годятся - там другой тип.
 
Ардунио идет своим путем и скоро закончит как NodeMCU.
Еще вариант, оставить эту FS в покое как есть, урезать ее на 1,4мбайта диска.
для остальной памяти добавить функции WRFlash(), RDFlash()....
вы же уже научились делать свои функции.
 

pvvx

Активный участник сообщества
Еще вариант, оставить эту FS в покое как есть, урезать ее на 1,4мбайта диска.
для остальной памяти добавить функции WRFlash(), RDFlash()....
вы же уже научились делать свои функции.
С полумерами идите с просьбами к китайцам или к nikolz, можно и к Ардуинщикам :)
Должно или работать, или отсутствовать (быть недописано или оставлено на пользователя). У меня такой подход :)
Промежуточных вариантов типа "как-то при каких-то условиях работает" быть не должно.
 
Последнее редактирование:
Промежуточных вариантов типа "как-то при каких-то условиях работает" быть не должно.
Похвально, халтуру не гоним !:)
Реально таких изделий не бывает, всегда есть рамки.
Соответствие техническому описанию (или ТЗ), бывает.
Вот так:
Напишем
Диск не более ..... 1,4мБ для 25Q32/64/128. :).
Допускается зависание изделия раз 2-3 минуты.
Наработка на отказ 3 дня.
Шутка конечно, но продавать уже можно.
Это все не в тему...
Не мне Вас учить...
 

pvvx

Активный участник сообщества
Похвально, халтуру не гоним !:)
Реально таких изделий не бывает, всегда есть рамки.
Да. Они ограничены реальными сформированными стандартами. Ошибки не в счет - это ошибки и они есть везде и всегда.
PS по поводу "тамогочи": т.к. она не запускает ни одного байта из представленных программ и не верно считывает блок лоадера из flash, то это означает, что неверно работает ROM-BIOS. ROM-BIOS не смотрит ничего кроме заголовка в 16 байт во flash и грузит то, что в них указано. Но "тамогочи" грузит что-то не то, на что указывает другая контрольная сумма загруженного блока. А т.к. конролька не совпадает c прописанной в конце блока лоадера во Flash, то процедура ROM-BIOS не запускает этот код и пишет "main.c". Единственное, как это возможно:
1) Помехи в виде емкостей на шинах SPI до flash (кривая китай-разводка проводников модуля)
2) Неисправность чипа ESP8266
3) Какие-то ноги чипа ESP8266 неконтачат к GND или питанию (об этом указывала и неработоспособность модуля после промывки спиртом).
Чтобы это диагностировать вам придется перекинуть чип ESP8266 на другой.
 
Последнее редактирование:
Сверху Снизу