EEPROM: EEPROM.end() crashes and reboots

The ESP32 only has 520kB of RAM, a small part ~128kB is the instruction cache. It loads program code from the 4MB FLASH, then executes from this RAM. The EEPROM() library emulates the EEPROM in a AVR processor by allocating a RAM buffer of the Requested Size (multiple of 4096 bytes, because the FLASH has to ERASE 4kB at a time). It then applies your EEPROM.write() to this RAM buffer, when you commit() it Disables Cache because it has to Take control of the FLASH, (background code loading is frozen) Issues the Flash Erase command (which can take a long Time, tens to hundreds of ms). Since this task is held waiting for the Hardware, FreeRTOS finds another task that it can release, or in your case, BLE issues a callback. But, since you did not tell the compiler to always keep the callback in RAM, the Callback code is still in the FLASH which is eraseing a sector for EEPROM(). Since the background instruction loading function needs to use the cache and the FLASH to service this callback. It explodes.

Callbacks, Interrupts, any code that can execute out of order needs to always reside in the limited 128kB instructionRam. So any code that can be called out of order needs ATTR_IRAM which forces the compiler to keep it in RAM forever. AND, every call from that code must ALSO be in RAM at all times. So, be parsimonious about which code you call.

Source: https://github.com/espressif/arduino-esp32/issues/928

Gentile da Fabriano

Gentile da Fabriano (c. 1370 – 1427) was an Italian painter known for his participation in the International Gothic painter style. He worked in various places in central Italy, mostly in Tuscany. His best-known works are his Adoration of the Magi from the Strozzi Altarpiece, (1423) and the Flight into Egypt.
Source: Gentile da Fabriano – Wikipedia

Regula Mühlemann

Regula Mühlemann (born 1986) is a Swiss operatic soprano.

Mühlemann was born in Adligenswil, Switzerland, and studied voice with Barbara Locher at the Academy of Music in Lucerne in 2010 where she graduated with honors with a Master of Arts. Her first appearances on the opera stage included the following roles: Maturina in Gazzaniga‘s Don Giovanni Tenorio, Barbarina in Le nozze di Figaro, Papagena in The Magic Flute, and Doralice in Scarlatti‘s Il trionfo dell’onore.

In Jens Neubert’s film version of Weber’s opera Der Freischütz, Mühlemann played the role of Annie and was praised by critics. The Neue Zürcher Zeitung saw her as “a discovery of the first order.” In the opera season 2010 and 2011, Mühlemann appeared at the Lucerne Theatre as soloist in several operas, such as Mozart’s “The Magic Flute” and Alessandro Scarlatti’s “Il trionfo dell’onore.

https://en.wikipedia.org/wiki/Regula_M%C3%BChlemann

HW H.265 And H.264 Codec On H3 – Allwinner H2 & H3 – Armbian forum

Pardon? RPi’s outdated VideoCore IV does h.264 decoding HW accelerated but not h.265. While more recent Allwinner SoCs can do that at least with 8 bit (no 10 bit support): http://linux-sunxi.org/Cedrus#Supported_codec_matrix (you can add H5 here too — progress with this SoC is mostly missing in linux-sunxi wiki yet)

Instead of recommending those boring and outdated Raspberries it would help if people would start contributing support for better platforms.

https://forum.armbian.com/topic/3472-hw-h265-and-h264-codec-on-h3/