Every time I read the state of GPIO39, GPIO36, GPIO34, GPIO35 on the first Core of ESP32 and I draw a picture to LCD via SPI on the second core of ESP32 the value of GPIO39, GPIO36, GPIO34, GPIO35 is corrupted.
( this time nobody sends a signal to this GPIO !!! )
There is a very easy code when the bug happens.
This code starts on Core 0
Code: Select all
for( ;; )
{
uint32_t addr = SPI_CMD_REG( VSPI );//addr == 0x3ff65000
uint32_t v = ( ( uint32_t* )addr )[ 0 ] | ( 1 << 18 );
v = (( uint32_t* )addr )[ 0 ];
delay( 1 );
}
Code: Select all
for( ;; )
{
uint32_t gpioin1val = GPIO.in1.val;
for(;;)
{
if( gpioin1val != GPIO.in1.val )
bugreport( ); // <- there is a bug.
delay( 1);
};
}
Only GPIO.in1.val is corrupted. The GPIO.in is OK.