Aktywne Wpisy
fanmarcinamillera +240
Bosak właśnie potwierdził, że Konfa jest za wyjściem z UE . No to słucham Konfiarze, jeżeli nie UE, to do jakiego bloku ma należeć Polska? Odpowiedź w próżni nie wchodzi w grę, bo jest zwyczajnie debilna.
Nie wiem, choć się domyślam ( ͡° ͜ʖ ͡°) #neuropa #4konserwy #kanalzero #konfederacja #polityka
Nie wiem, choć się domyślam ( ͡° ͜ʖ ͡°) #neuropa #4konserwy #kanalzero #konfederacja #polityka
Michael_MD +870
Mieszkanie w Krakowie na Prądniku czerwonym 65 m2 kosztuje teraz dokładnie tyle samo co mieszkanie na osiedlu przy parku olimpijskim w dwa razy większym Monachium xD. Mieszkanie w Monachium w okolicy terenów zielonych, największego parku i piękna architektura. Mieszkanie w Krakowie ciasno, smród, bród i betonoza jak w Bangladeszu. Trzymajcie się w tej Polsce a zwłaszcza w Krakowie bo wasze średnie zarobki są dokładnie o połowę mniejsze niż średnie w Monachium xD.
Mam zatem pytanie do osób korzystających z ESP8266 oraz ESP32.
Robiłem przed chwilą test tej pamięci poprzez komendę ESP.getFreeHeap() i moje wyniki są następujące: ESP8266 = 50KB, ESP32 = 307KB. Pytanie mam, czy wartości te (KB) są stałe dla tych modułów? Czy może są inne odmiany ESP32 lub ESP8266 z większą ilością pamięci Heap?
PS. Na internecie trafiam na wartości, że ESP32 ma Pamięć SRAM 520 KB, a tymczasem ja otrzymałem wartość jedynie 307KB - dlaczego?
#arduino #nodemcu #esp8266 #esp32 #mikrokontrolery
Czemu mi brakuje, buduję czasami zaawansowane zestawy i bywa, że się wykrzacza. Dużo różnych sensorów, przekaźników i z tego co widzę to może być tak, że WiFi jest niestabilne pod względem wykorzystania RAM-u. Na innym module zauważam, że biblioteka Blynk IOT zużywa bardzo dużo RAM-u i powoduje codzienne restarty :/
@MisiekD: bo reszta jest zajęta przez inne rzeczy, statyczne alokacje, stosy dla wątków, cache dla flasha, kod siedzący w RAMie (żeby się szybciej wykonywał)
Przy kompilacji powinieneś mieć podsumowanie ze statycznymi alokacjami oraz plik map ze szczegółami
Total sizes:
Used stat D/IRAM: 43732 bytes ( 277564 remain, 13.6% used)
.data size: 3680 bytes <----------- dane zainicjalizowane
@MisiekD: to wynik polecenia idf.py size
Jak ci mało pamięci to kup sobie esp-32s3
@MisiekD: gcc, innego kompilatora przecież do tego nie ma. Plik map może być utworzony na etapie linkowania (potrzebna jest opcja -Map=nazwaprogramu.map) albo później narzędziem objdump. Zlokalizuj gdzie masz plik elf po zakończeniu kompilacji i wywołaj objdump na nim, np. dla esp32-c3 (riskV) robię to tak:
~/.espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/riscv32-esp-elf-objdump -x dupa.elf
Rozmiar:
~/.espressif/python_env/idf5.1_py3.10_env/bin/python ~/esp/esp-idf/tools/idf_size.py blink.map
`C:\Users\Misiek\Documents\PlatformIO\Projects\ESP8266 Kotłownia (czujniki temperatury, pompy obiegowe, wyświetlacz, 20x4)\.pio\build\Project\firmware.elf: file format elf32-little
C:\Users\Misiek\Documents\PlatformIO\Projects\ESP8266 Kotłownia (czujniki temperatury, pompy obiegowe, wyświetlacz, 20x4)\.pio\build\Project\firmware.elf
architecture: UNKNOWN!, flags 0x00000112:
EXECP, HASSYMS, DPAGED
start address 0x401000c0
Program Header:
LOAD off 0x000000d4 vaddr 0x00000000 paddr 0x00000000 align 212
filesz 0x00000000 memsz 0x00000000 flags ---
LOAD off 0x00001000 vaddr 0x3ffe8000 paddr 0x3ffe8000 align 212
filesz
https://www.esp8266.com/wiki/doku.php?id=esp8266_memory_map
Programuje sb ESP8266, włączam go teraz, pracuje 1h i nąjniższa wartość pamięci heap po 1h to 30KB, 3 dni później najniższa wartość heap zdarza się, że np
2KB. No i bywa, że spada poniżej tych 2KB, a to powoduje restart i tego restartu chcę uniknąć.
Masz jakieś przypuszczenia z czego to mogłoby być? I jak uniknąć?
PS. W ESP8266 używam WiFi jako klient
@MisiekD: wycieki pamięci - pamięć jest alokowana, ale nie jest zwalniana po zakończeniu jej użycia.
Albo tak pisać kod, żeby nie było wycieków ( ͡º ͜ʖ͡º) a jak już są to pisać kod przenośnie - tak, żebyś mógł go uruchomić na PC. Wtedy będziesz miał do dyspozycji różne narzędzia typu valgrind i sanitizery dostarczane przez