Garbage in framebuffer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-10-26 05:13 AM
Good afternoon to everyone!
I have some problem with flushing or rendering.
My settings:
- partitial framebuffer, 4 bloks, 16bpp, 32000 block size;
- internal RAM for framebuffer;
- use DMA2D and DMA2 for FMC (STM32F469);
Problem - after start UI if we press "Reset" UI button, release image button is corrupted. I am check bitmap and bitmap in framebuffer - they very difference. Result in pic.
After two click this corruption disappears. But similar problem in swap container(upper text label "LFP1") never disappears.
Thank you in advance!
- Labels:
-
STM32F4 Series
-
TouchGFX
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-10-26 07:34 AM
I am add code in function transmitFrameBufferBlock delay before start DMA for FMC:
void transmitFrameBufferBlock(uint8_t* pixels, uint16_t x, uint16_t y, uint16_t w, uint16_t h)
{
_isTransmittingData = 1;
uint32_t _data_length = w * h;
for(uint32_t i = 0; i < 21300; i++)
{
asm("nop");
}
SSD1963_Set_Work_Area(x, y, w, h);
HAL_DMA_Start_IT(&hdma_memtomem_dma2_stream0, (uint32_t)pixels, FMC_DATA_ADR, _data_length);
}
Garbage is disappear but flushing very slow. This method is wrong.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-10-26 07:01 PM
Hello,
Do you store your images in an external Flash ? If so, try to put them into internal Flash and see if you have still the problem. If you don't, this probably means your external Flash is incorrectly configured.
/Alexandre
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-10-26 10:47 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-10-29 03:41 AM
Hello everyone!
I find out that framebuffer allocator working with issues. If we use 4 bloks, counter sendingBlock or drawingBlock lags and we draw another blocks. TouchGFX engine marks another block. markBlockReadyForTransfer() we call in flush method. How fix it?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-10-29 09:53 PM
Hello,
Sorry but could you please add more information ? You are using an F469 MCU right ? Is your board a custom board ? Do you confirm using TouchGFX 4.15 ?
Can you illustrate the issue with images and/or pieces of code to make it clearer ?
Have you tried using 3 blocks ? Have you tried changing the size of the blocks ?
/Alexandre