~/talk

ESP32 memory management, Neopixels, and RGBPanels

Talkat linux.conf.au 2020 · 2020-01-13..01-17· [embedded-and-hardware]
links:none on file
slides:none on file

ESP32 reports 520KB spec, ~160KB usable for large global arrays, but memory is fragmented (DMA vs instruction cache regions) so big framebuffers blow out linking or crash at runtime; a 12 KB framebuffer fits on other MCUs but fails on a 1 KB task stack (1KB task stack), and converting large static arrays to malloced chunks saves about 39 KB in one case. Built a layer to run SmartMatrix / Adafruit FastLED / RGBPanel code on multiple backends, moved heavy work to a Raspberry Pi when 4096 Neopixels and RGB panels overwhelm the ESP32.

AI-written summary · about

  1. 0:00Start
  2. 3:50Then I switched to RGBPanels, they need a lot more RAM
  3. 7:13Global Arrays can barely access 160KB
  4. 7:47Your program may compile, but crash at runtime
  5. 8:37Only 8KB of stack
  6. 10:56Converting arrays to mallocs
  7. 12:17Multi dimensional arrays with malloc and memory saved
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.