RT1064 GUI-Guider LVGL performance tweaks

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RT1064 GUI-Guider LVGL performance tweaks

749 Views
aanderson-eemn
Contributor I

We have a product designed based off of the MIMXRT1064-EVK. We're using GUI-Guider to design LVGL based applications for the same type of screen that the GUI-Guider example projects use. We're working on finding performance improvements and came across this post about system level changes that can improve performance: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/LVGL-Benchmark-Performance-Optimizatio... . In addition to these, are there LVGL configuration settings that can be adjusted for performance gains?


We noticed that in the projects based on the GUI-Guider generated project the CPU usage as reported by the LVGL performance monitor is fairly high even when the screen is static and no GUI elements need updating. Are there any LVGL settings that can reduce the amount of redrawing that's happening?

Tags (3)
0 Kudos
Reply
2 Replies

694 Views
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @aanderson-eemn,

The GUI Guider User Guide (GUIGUIDERUG_1.10.1: GUI Guider v1.10.1 User Guide | NXP Semiconductors) has a specific section on performance optimizations, but most of the recommendations are already explored by the knowledge base article that you previously shared. My recommendation would be to follow both of these documentations to increase performance of your LVGL application.

BR,
Edwin.

0 Kudos
Reply

452 Views
aanderson-eemn
Contributor I

@EdwinHz Thank you for the advice. We have found that running the application in SDRAM has resulted in a noticeable increase in performance, but I have been having a lot of trouble generating a hex file that runs the application from SDRAM. The benchmark performance optimization document described a process for creating a SDRAM-based firmware image using the secure provisioning tool that seems to generate an image suitable for the serial downloader mode: https://docs.mcuxpresso.nxp.com/secure/latest/06_processor_specific_workflow.html#image-running-from... . However, we will be flashing our device directly using a JLink, so we need our image to include the boot header, ivt, dcd etc... I found this article describing how to manually re-add those sections to the linker script: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/I-MX-RT-How-to-boot-to-SDRAM/ta-p/1125... , but I didn't have any luck. Could you provide some guidance for how I can generate a binary file that I can flash using a JLink, that runs the application from SDRAM?

 

For reference here are the steps that I think come closest to achieving this:

1. starting with the iled_blinky project on the RT1064-EVK board with mcuxpresso SDK V25.06.00 .

2. add `XIP_BOOT_HEADER_DCD_ENABLE=1` and `SKIP_SYSCLK_INIT` to the preprocessor defines

3. check "Link application to RAM" in managed linker script

4. delete `PROGRAM_FLASH` memory region and move `BOARD_SDRAM` memory region to the top of the list

5. run a build to generate the linker file

6. uncheck "manage linker script" and re-add the boot header/ivt/boot_data/dcd_data sections to the linker script

0 Kudos
Reply