cancel
Showing results for 
Search instead for 
Did you mean: 

Working with Partial Frame Buffer memory (4.12.3)

Jack li1
Associate III

Hi:

I have some problem about t Partial Frame Buffer memsory.I declared ManyBlockAllocator<360*182,2, 2> frameBufferAllocator in the program just like in the tutorial,but displayed the error .Are there any detailed tutorials about how to use Partial Frame Buffer memory? 

Thank you very much!!

B,R

Jack li

Error[Li005]: no definition for "touchgfx::FrameBufferAllocatorWaitOnTransfer()"

1 ACCEPTED SOLUTION

Accepted Solutions

Actually,

Here's the project - Check out the file STMicroelectronics\target\TouchGFXHAL.cpp to check out the HAL part is implemented. The functions in there sometimes call other functions that are defined in LCDManager.c to do the actual SPI transfers to the display.

The general idea here is to, as always when have a custom display interface like SPI, to implement the transfer of the framebuffer to the GRAM on the display in the function:

void HAL::flushFrameBuffer(Rect& rect);

This port just uses a hardware timer to drive touchgfx. I think i'll just leave this code with you and you can read the article and ask me questions.

/Martin

View solution in original post

12 REPLIES 12
Martin KJELDSEN
Chief III

Hi @Jack li​,

Some methods are expected once you enable the partial framebuffer strategy. It's something you must implement - There's no complete guide on how to make partial framebuffers work except what you read in this article.

https://touchgfx.zendesk.com/hc/en-us/articles/360008040699-Lowering-memory-requirements-using-Partial-Frame-Buffers-

I'll try to write a small piece on how to make Partial Framebuffers work on a G0 with a serial display. Stay tuned!

/Martin

Hi @Martin KJELDSEN​ :

Thanks a lot,I desperately need this feature right now,so could you update this article as soon as possible?

Thank you very much!!

B,R

Jack li

Okay, since you're desperate let me write something here and you can let me know if it helps you 🙂 Give me a few minutes to collect things.

/Martin

Actually,

Here's the project - Check out the file STMicroelectronics\target\TouchGFXHAL.cpp to check out the HAL part is implemented. The functions in there sometimes call other functions that are defined in LCDManager.c to do the actual SPI transfers to the display.

The general idea here is to, as always when have a custom display interface like SPI, to implement the transfer of the framebuffer to the GRAM on the display in the function:

void HAL::flushFrameBuffer(Rect& rect);

This port just uses a hardware timer to drive touchgfx. I think i'll just leave this code with you and you can read the article and ask me questions.

/Martin

Hi @Martin KJELDSEN (ST Employee)​ : 

Your help was greatly appreciated.I use SPI dispaly too,so this project is very timely.

B,R

Jack li

No problem! Let me know how you do

/Martin

Would it be possible to get the Partial Frame Buffers project for the STM32L4R9I-DISCO board as well?

Thanks!

Eric

Hi, it's possible to use partial framebuffers for LTD/DSI based boards as well - It involves reprogramming the LTDC Layer constantly. You can get some inspiration from this article which shows, generally, how Partial FB works for LTDC/DSI and for a custom interface like SPI.

https://touchgfx.zendesk.com/hc/en-us/articles/360008040699-Lowering-memory-requirements-using-Partial-Frame-Buffers-

I had reviewed that page but it wasn't clear to me which files I'm supposed to place the new functions in. For example, where should FrameBufferAllocatorSignalBlockDrawn and SendBlock go? Also, I receive an undefined reference to FrameBufferAllocatorWaitOnTransfer when building and that isn't mentioned anywhere in the article. I was hoping the project might be available to review as a reference.