Comments (2)
I ran the above issue through the platformio exception filter, while the file names seem to be wrong, the more detailed information seems to provide some hints
#0 0x4008edf0:0x3ffb1bc0 in invoke_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:707
#1 0x4008f021:0x3ffb1be0 in abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:707
#2 0x400e5a03:0x3ffb1c00 in __assert_func at /Users/ivan/e/newlib_xtensa-2.2.0-bin/newlib_xtensa-2.2.0/xtensa-esp32-elf/newlib/libc/stdlib/../../../.././newlib/libc/stdlib/assert.c:63 (discriminator 8)
#3 0x4008ea7d:0x3ffb1c30 in multi_heap_free at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/multi_heap_poisoning.c:301
#4 0x40087332:0x3ffb1c50 in heap_caps_free at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c:268
#5 0x40087739:0x3ffb1c70 in _free_r at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/newlib/syscalls.c:42
#6 0x4000bec7:0x3ffb1c90 in ?? ??:0
#7 0x400d8f26:0x3ffb1cb0 in TFT_eSprite::deleteSprite() at .pio/libdeps/m5stack-fire/M5EPD/src/utility/Sprite.cpp:833 (discriminator 1)
#8 0x400d2411:0x3ffb1cd0 in M5EPD_Canvas::deleteCanvas() at /Users/magrund/.platformio/packages/framework-arduinoespressif32/cores/esp32/WString.h:216
#9 0x400d2460:0x3ffb1cf0 in M5EPD_Canvas::~M5EPD_Canvas() at /Users/magrund/.platformio/packages/framework-arduinoespressif32/cores/esp32/WString.h:216
#10 0x400d1dc5:0x3ffb1d10 in setup() at src/main.cpp:15
#11 0x400dbbf3:0x3ffb1fb0 in loopTask(void*) at /Users/magrund/.platformio/packages/framework-arduinoespressif32/cores/esp32/IPAddress.h:52
#12 0x4008b52d:0x3ffb1fd0 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
It seems to be an issue with the destructor of the canvas.
from m5epd.
I think I have found the culprit. The assignment operator calls delete canvas, which makes it impossible that two instances share the underlying sprite. While I understand while this behavior is desirable, I would suggest to simply disallow copy and assignment construction.
M5EPD_Canvas::~M5EPD_Canvas()
{
deleteCanvas();
}
void M5EPD_Canvas::operator=(const M5EPD_Canvas &src)
{
deleteCanvas();
createCanvas(src._dwidth, src._dheight);
memcpy(_img8, src._img8, src._buffer_size);
}
from m5epd.
Related Issues (20)
- Random crash when drawing PNG at src/utility/pngle.c:859 HOT 1
- the shutdown() function isn't working for me. HOT 3
- Confusion about power modes HOT 2
- textWidth return 0 if TTF loaded HOT 1
- QR Code - Core 1 panic : when size > 26. HOT 1
- Deep sleep support HOT 1
- Arduino Compile Errors HOT 1
- TextWrap doesn't seem to work HOT 1
- Please make a new release of this Library HOT 2
- Mac OS Big Sur serial issue tracked down to USB controller: NOT CP2104 but CH9102 HOT 5
- How to get/calculate battery status? HOT 1
- M5EPD.cpp error HOT 3
- Q: What is the correct BMP bitmap format? HOT 3
- M5paper stuck in - M5EPD initializing...OK - loop HOT 4
- GT911 - Interrupt disabling causes target reset HOT 1
- How to use unified library and power functions with Paper EPD HOT 3
- Cannot do simple stuff like invert text or create touch button HOT 1
- Issues are closed without being handled HOT 1
- The README should describe the purpose of this repository HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from m5epd.