I have created three tasks using Free RTOS, out of which one of the tasks is using images to be displayed from the sd-card to the display. For this, I have modified SD_JPEG example. Additionally, I want other tasks to use PXP driver code which uses a manual input buffer. I am facing an issue in adding SD_JPEG example with PXP driver code.
Could you please help me with it? [I am using IMXRT 1176]
My issues are:
1) If I run PXP task and then if I run SD_JPEG task, there's display fluctuation. So, If I disable PS and AS at the end of PXP code, before running other tasks, will this work?
2) Another reason I think this can be because I am giving different buffers in both codes (g_frameBuffer and s_BufferLcd). If this is an issue how can I solve it?
3) Is it compulsory to use decoding format as same, as in SD_JPEG example its using RGB888 format and in PXP example its using RGB565 format?
I tried putting buffer in NonCacheble region -
Modified "SDK_ALIGN(static uint8_t g_frameBuffer[APP_FB_NUM][APP_FB_SIZE_BYTE], APP_FB_ALIGN);" to "AT_NONCACHEABLE_SECTION_ALIGN(static uint8_t g_frameBuffer[APP_FB_NUM][APP_FB_SIZE_BYTE], APP_FB_ALIGN));"
While compiling, it says "Cache is overflowed". I tried modifying value of RAM2 in properties option. But I am getting Bus Fault error.
Is the above method correct or I am doing something wrong? Can you help me with this.
I have tried modifying RAM addresses as you have shown. There's no error in compiling.
1) First I am running sd_jpeg task, and it's working fine.
2) Then, I am running PXP driver, and it's working fine.
3) Again if the sd_jpeg task is getting run, I am getting PXP image and image from SD Card getting overlapped on the display. There's display fluctuation.