本文只是简单的测评一下LVGL的帧率,实际可能还有待优化。
项目例程下载地址: Gitee 下载地址
1.硬件平台:正点原子阿波罗STM32F429IGT6+RGB屏(分辨率:800*480)
2.littleVGL版本:V8.3
LVGL开发教程:三、帧率测评
提示:以下是本篇文章正文内容,下面案例可供参考
一、MDK以及LVGL设置
①MDK 设置优化等级设置最高:-03 & optimize for time
②LVGL打开DMA2d图形加速
③DMA2d中断刷屏
定义一个刷屏标志位g_gpu_state用于在中断中通知
根据需要选择阻塞刷屏还是中断刷屏,完整的显示接口文件lv_port_disp_template.c如下:
/**
* @file lv_port_disp_templ.c
*
*/
/*Copy this file as "lv_port_disp.c" and set this value to "1" to enable content*/
#if 1
/*********************
* INCLUDES
*********************/
#include "lv_port_disp_template.h"
#include "../../lvgl.h"
#include "./BSP/LCD/lcd.h"
#include "dma2d.h"
#include "./BSP/LCD/ltdc.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void disp_init(void);
static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p);
//static void gpu_fill(lv_disp_drv_t * disp_drv, lv_color_t * dest_buf, lv_coord_t dest_width,
// const lv_area_t * fill_area, lv_color_t color);
/**********************
* STATIC VARIABLES
**********************/
#define MY_DISP_HOR_RES 800
#define MY_DISP_VER_RES 480
/**********************
* MACROS
**********************/
static lv_color_t buf_3_1[MY_DISP_HOR_RES * MY_DISP_VER_RES] __attribute__((at(0XC0000000 + 1280*800*2 + 10*1024 + 160*4)));
static lv_color_t buf_3_2[MY_DISP_HOR_RES * MY_DISP_VER_RES] __attribute__(