espressif/arduino-esp32

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.ino

Debug 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