Hi @ESP_Sprite,
Development board: ESP32-S3-DevKitC-1-N8R8.
If i send only one pixel(two bytes) using "edma", the value is correct at i80 bus.
If i send a bigger buffer start giving problem.
I will test and try to find a stable buffer size.
is there a maximum buffer size to work with edma ?
For example: I allocated a buffer with 307200 bytes and sent 200 000 bytes.
I change only the firt pixel to 0x1234.
The first 2 bytes apparently it's ok(i will measure), the third byte get corrupted and the final of "packet" gets corrupted too.
Code: Select all
for( uint32_t i = 0 ; i < 153600 ; i++ ) // 1 pixel = 2 bytes
{
p_buffer_a[i] = 0xffff;
}
p_buffer_a[ 0 ] = 0x1234; // PSRAM send first least significant byte(0x34) then send most significant byte(0x12).
// CPU writes data to PSRAM through DCache, data in PSRAM might not get updated, so write back
//Cache_WriteBack_Addr( (uint32_t)&p_buffer_a[ 0 ], 1 )
int ret = Cache_WriteBack_Addr( (uint32_t)p_buffer_a, 153600 );
printf("\n\nret = %d\n", ret);
Thank's.