2019-05-20 11:09 PM
Hi,
I am working on a project where we will be using a STM32F429 device.
I am using the discovery board for prototyping and testing a few LCD related routines. I am using STEMWIN library with FreeRTOS to create UIs.
As the discovery board has an external SDRAM on it hence the LTDC frame buffers reside on the external SDRAM memory and STEMWIN is configured accordingly.
My Questions mostly are regarding STEMWIN which are as follows:
1. When I select multiple buffers in cube mx, does STEMWIN allocate all the buffers in the external memory?
2. When I use a function from STEMWIN which allocates memory at run time (like JPEG or PNG decoding, or for memory devices) where is that memory allocated? If it is allocated on the internal RAM is there any way I can configure the library to use external memory?
3. How should I decide my FreeRTOS GUI task memory requirements? I faced a few issues to display widgets when my task stack size was small (128 Bytes) it was fixed when I increased it to around 1KB. But is there any way how I can estimate my task's stack requirements at least related to the graphics library?
4. How much memory is STEMWIN using from the external memory? I know it is dynamic and depends on my application but is there any way or some tool from where I can get an approximate estimate? (Actually the discovery board has a 8MB external RAM, presently I have reserved the first 1MB portion of the RAM assuming the graphics library won't use it more than that and rest of the 7MB I reserved it for large application variables.)
5. Finally I am also thinking of allocating the FreeRTOS heap in the external memory (as I am dealing with images I will have huge amount of data which should be allocated at runtime and which should be communicated between tasks). I am not sure whether its a good idea and whether it is possible with minimal modifications. Also I need to think what impact it will have on my GUI performance. I need your advice on this.
Following are the details regarding my hardware and software environments (in case if it is required):
Board: STM32F429ZI Discovery board.
Debugger: STLink.
Compiler: GCC
IDE: Atollic Studio
I am using Cube Mx for project generation.
Cube SDK Version: FW_F4 V1.24.1
Please let me know your comments.