I don’t know if it is the right forum to ask.
I am using the example code from this link: “https://blog.littlevgl.com/2019-02-02/use-ipod-nano6-lcd-for-littlevgl”.
The “i2s_lcd.c” driver, provided by espressif, is a little complicated, so i am trying to understand to modify it.
I dont want to use dynamic memory allocation, so i converted to static allocation.
At first it’s working, i think only the function “void i2s_lcd_write_cmd (uint8_t cmd)” stopped working, i dont know why.
I also want to change the functionality of this driver a bit if i am not lost a lot.
From what i measured, the function “int i2s_lcd_write_data( void* src, size_t size, TickType_t ticks_to_wait, bool swap)”, only return after sending all data.
This way the use of dma doesn’t make much sense.
what i want to do:
I created two equal sized buffer(1/10 lcd size each buffer).
I want to send the two data buffers using dma.
Littlevgl write the first buffer and send using dma.
While dma are send the first buffer the littlevgl library write the second buffer.
And so on…
How can switch the two buffers ?
i need to somehow test that the buffer1 has just been sent and the littlevgl library finished wrote in the buffer2.
I understand very little of rtos.
I should use something like this: “https://www.freertos.org/RTOS_Task_Notification_As_Binary_Semaphore.html” ???
How to integrate with the littlevgl library ?
I’m a little lost.