A cache error occurred while using the SPI screen.
Closed this issue · 1 comments
Board
Heltec Wireless Tracker
Device Description
https://heltec.org/project/wireless-tracker/
ESP32-S3FN8+SX1262+UC6580 Chipset, supports Wi-Fi, LoRa, Bluetooth, GNSS.
Onboard 0.96-inch 160*80 dot matrix LCD display, which can be used to display debugging information, battery power, and other information.
Hardware Configuration
There are no external links to anything.
Version
v3.3.2
Type
Bug
IDE Name
Arduino-IDE
Operating System
WIN11
Flash frequency
80Mhz
PSRAM enabled
no
Upload speed
115200
Description
When I used version 3.0.2, the SPI screen worked correctly. However, when I downloaded version 3.3.0, after downloading the screen code, it kept resetting; the reset information is shown below. Other examples of version 3.3.0 that don't use SPI work correctly.
Sketch
The example below is being used.
https://github.com/HelTecAutomation/Heltec_ESP32/blob/master/examples/TFT/ST7735_SPI/ST7735_SPI.inoDebug Message
ESP Exception Decoder
Sketch: ST7735_SPI FQBN: esp32:esp32:heltec_wireless_tracker
Guru Meditation Error: Core 1 panic'ed (Cache error).
Dbus write to cache rejected, error address: 0x3c03acc4
Core 1 register dump:
PC : 0x40056fb2 PS : 0x00060734 A0 : 0x82005d96 A1 : 0x3fcebe60
A2 : 0x3c03acc4 A3 : 0x3fcebe72 A4 : 0x00000003 A5 : 0x3c03acc6
A6 : 0x00000000 A7 : 0x00000000 A8 : 0x00000000 A9 : 0x3fcebe60
A10 : 0x00060723 A11 : 0x00000000 A12 : 0x00060720 A13 : 0x00060723
A14 : 0x3fca09a8 A15 : 0x0000abab SAR : 0x00000018 EXCCAUSE: 0x00000007
EXCVADDR: 0x00000000 LBEG : 0x40056f5c LEND : 0x40056f72 LCOUNT : 0xffffffff
Backtrace: 0x40056faf:0x3fcebe60 0x42005d93:0x3fcebe70 0x42006685:0x3fcebed0 0x420029b4:0x3fcebef0 0x420029ca:0x3fcebf10 0x4200228d:0x3fcebf30 0x420022bf:0x3fcebf50 0x420023cb:0x3fcebf70 0x4200200a:0x3fcebf90 0x42007509:0x3fcebfb0 0x4037c271:0x3fcebfd0
ELF file SHA256: 4a27063e4
1 | reserved | 7
PC -> 0x40056fb2: ??
0x40056faf: ??
0x3fcebe60: ??
0x42005d93: __spiTransferBytes () at C:\Users\navi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\cores\esp32\esp32-hal-spi.c:1040
0x42006685: spiTransferBytes () at C:\Users\navi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\cores\esp32\esp32-hal-spi.c:1060
0x420029b4: SPIClass::transferBytes (unsigned char const*, unsigned char*, unsigned long) at C:\Users\navi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\SPI\src\SPI.cpp:295
0x420029ca: SPIClass::transfer (void*, unsigned long) at C:\Users\navi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\SPI\src\SPI.cpp:270
0x4200228d: HT_st7735::st7735_write_data (unsigned char*, unsigned int) at c:\Users\navi\Documents\Arduino\libraries\Heltec_ESP32_Dev-Boards\src\HT_st7735.cpp:137
0x420022bf: HT_st7735::st7735_execute_cmd_list (unsigned char const*) at c:\Users\navi\Documents\Arduino\libraries\Heltec_ESP32_Dev-Boards\src\HT_st7735.cpp:155
0x420023cb: HT_st7735::st7735_init () at c:\Users\navi\Documents\Arduino\libraries\Heltec_ESP32_Dev-Boards\src\HT_st7735.cpp:208
0x4200200a: setup () at C:\Users\navi\AppData\Local\Temp\.arduinoIDE-unsaved2025104-16852-qhvyd9.3wqs\ST7735_SPI\ST7735_SPI.ino:7
0x42007509: loopTask (void*) at C:\Users\navi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\cores\esp32\main.cpp:67
0x4037c271: vPortTaskWrapper () at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139
Paste exception to decode...
Other Steps to Reproduce
No response
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.
Sadly very badly written LCD library that does not use SPI transactions. Using transactions is a must on ESP32