Skocz do zawartości

Lua na nodemcu - brak pamięci


Pomocna odpowiedź

Napisano

Cześć.

Nie jestem do końca przekonany, czy to właściwy dział, więc z góry przepraszam 🙂

Mam problem z programem w lua na esp8266 (nodemcu)

Czy istnieje jakiś limit wielkości programu?

Obecnie w 3 plikach mam w sumie ok. 15kb programu, w tym ~10kb w init.lua

Doszedłem do punktu, że dopisując jedną linijkę np. zwykły print, dostaję na starcie info o braku pamięci. 🙁

Sprawdzałem na kilku różnych firmware m.in. 1.5.4, 2.0.x, oraz najnowsze 2.1

moduł na którym sprawdzam, to nodemcu v3 czyli esp8266-12e

Dzięki za tak pełną odpowiedź 😋

A poważnie, to forum nodemcu na github znalazłem wypowiedź, że w moim module (12e) jest limit na wszystko ok 44kB oraz na jeden plik 26857 bytes

Do żadnej granicy się nie zbliżam 🙁

Zapewne te granice mogą się zmieniać w zależności od ilości modułów wkompilowanych w firmware, ale mam obecnie bardzo minimalistyczny 8 modułów) i ciągle brak pamięci 🙁 mimo, że wywołanie =node.heap() pokazuje mi (w zależności kiedy) od 15 do 45 kB wolnego...

Jeden problem to całość wolnej pamięci, drugi problem to fragmentacja. Jeśli próbujesz zaalokować duży fragment pamięci na raz, a wolne są tylko małe kawałki, to i tak dostaniesz błąd braku pamięci.

Napisz swój program tak, żeby wszystkie duże rzeczy alokował na początku i unikaj alokowania i zwalniania dużej liczby obiektów.

[ Dodano: 16-08-2017, 18:50 ]

Dzięki za tak pełną odpowiedź

Dzięki za tak pełne pytanie.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...