本贴主要介绍裸机+LVGL性能以及移植需要注意的问题。 先说性能(测试LVGL跑分例程): CPU:stm32Mp135D 显示屏:1024*600 性能1:650M(cpu频率) 185fps(平均帧率) 性能2:900M(cpu频率) 185fps(平均帧率) 避坑(下面操作不一定是正确的,小伙伴有更好的办法可告诉我): 1、直接使用官网例程LTDC_Display_2Layers作为APP进行配置(默认打开cache,如图标记,有两个宏即为打开)。 2、因为打开了cache,使用需要配置一下MMU才可以,否则会花屏。 配置操作如下: 说明:图1是显存地址,定义到.ldtc节。ltdc节的定义在ld链接文件,如图2&3。 这里我有一个疑问:我尝试使用attribute((at(0xC1000000)))定义,但是无效。 上述操作只是为了定义显存地址为0xC1000000,方便MMU保护。 MMU保护代码修改如下(mmu_stm32mp13xx.c): 这里将0xC1000000,大小为2M的地址空间设置为Write Through模式。在此模式下,数据写入的时候会直接写入到存储器。具体解析可看相关资料。 这里我也有个疑问:直接在line245设置为透写,即设置整块DDR是不行的,还是会花屏。具体原因我不太清楚。 3、LVGL配置与加速 a、Lvgl的绘制函数disp_flush,我使用的是直接用CPU绘点。不知道大家有没有好办法。 b、使用定时器作为lvgl的时钟源。(我在APP代码里没找到滴答时钟的中断入口) c、编译器需要开最高优化,否则性能差别很大。 |
keil安装pack中提示Encountered an improper argument. 如何解决
STM32MP135DAF7系列运行DDR_Init_A7死机,调试发现是DDR初始化出错。
classB自检库上面没有MP1系列的范例,有针对MP1系列的自检解决方案或是应用笔记吗?
stm32cubide搜索不到.h文件里的文本
stm32cubeide-boot loader跳转APP异常问题
我用过stm32cubemax 但是我给stm32cubeide整服了
怎么监听触摸动作松开?
stm32mp135怎么只烧录bootfs,根文件系统保持不变?
STM2cubeide使用Freertos v2提示错误问题
cubeIDE在运行时显示Failed to execute MI command是什么问题呢?
厉害了,大佬