You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since the board defines SPI_PORT=0, _spi_user is assigned a NULL pointer and the board crashes when trying to assign a value to the pointer.
In 6.6.0 the definition is: #define REG_SPI_BASE(i) (((i)>1) ? (DR_REG_SPI3_BASE) : (DR_REG_SPI2_BASE)), no NULL pointer and works fine
I solved the issue by using the flag -D USE_HSPI_PORT => this sets SPI_PORT=3 and the sketch runs fine.
However the definition or REG_SPI_BASE(i) seems wrong of the board should not use SPI_PORT=0. Maybe someone with more knowledge can can look int this (or point me to where I m wrong).
Maybe I was supposed to set this or another environment variable myself, however It would be nice if a warning or error was raises.
The text was updated successfully, but these errors were encountered:
For sure the issue is wrong placed in this github. The issue is known. espressif/arduino-esp32#10115
Best would be if it is fixed in the place where it is wrong -> IDF
A fix could be done in the bodmer/TFT_eSPI too
I don't know if this is the right place to enter the issue and maybe I am doing something wrong myself.
Since espressif32@6.7.0 a call to tft.init() (from the bodmer/TFT_eSPI library latest version as of today) crashes for the lilygo T-embed-s3:
I traced back the issue and found the board crashes on:
SET_BUS_WRITE_MODE;
(TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.c)Traceback of
SET_BUS_WRITE_MODE;
:1:
#define SET_BUS_WRITE_MODE *_spi_user = SPI_USR_MOSI
(TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h)2:
#define _spi_user (volatile uint32_t*)(SPI_USER_REG(SPI_PORT))
3:
#define SPI_USER_REG(i) (REG_SPI_BASE(i) + 0x10)
4:
#define REG_SPI_BASE(i) (((i)>=2) ? (DR_REG_SPI2_BASE + (i-2) * 0x1000) : (0)) // GPSPI2 and GPSPI3
(.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/soc.h:122 (included from sensor.h))Since the board defines SPI_PORT=0, _spi_user is assigned a NULL pointer and the board crashes when trying to assign a value to the pointer.
In 6.6.0 the definition is:
#define REG_SPI_BASE(i) (((i)>1) ? (DR_REG_SPI3_BASE) : (DR_REG_SPI2_BASE))
, no NULL pointer and works fineI solved the issue by using the flag
-D USE_HSPI_PORT
=> this sets SPI_PORT=3 and the sketch runs fine.However the definition or REG_SPI_BASE(i) seems wrong of the board should not use SPI_PORT=0. Maybe someone with more knowledge can can look int this (or point me to where I m wrong).
Maybe I was supposed to set this or another environment variable myself, however It would be nice if a warning or error was raises.
The text was updated successfully, but these errors were encountered: