NXP MCU 技术william hill官网
直播中

李宛蔓

7年用户 975经验值
私信 关注
[问答]

LVGL cpu使用率过高无法显示视频怎么处理?

芯片:RT1176DVMAA
屏幕:480x640 MIPI接口。
我导入 SDK(2.13.1) example:lvgl_guider_cm7 并且只根据我的屏幕更改 MIPI DSI seqence 代码。PXP 和 VGLite 已启用。
`LV_USE_PERF_MONITOR` 启用查看 cpu 使用情况,但 cpu 使用率始终为 99%,即使只有两个标签和两个按钮。
有两种方法可以降低 CPU 使用率:
(1)增加主循环执行`lv_task_handler()`的间隔
(2)将编译器优化级别设置为`-O3`,降低更多。
在这个简单的屏幕中,cpu 使用率从 99% 降低到 27%。如果有更多组件,cpu 使用率仍然很高。我必须将 MIPI CSI 相机流显示到画布上,cpu 使用率将是 99 %,导致显示不流畅。
我认为问题的最可能原因是双缓冲。
`lv_disp_draw_buf_init(&disp_buf, s_frameBuffer[0], s_frameBuffer[1], 480*640);`
`s_frameBuffer`需要480*640*2字节的内存,我不得不把它放在SDRAM而不是内部SRAM,外置内存导致CPU占用率高。看来MIPI接口只支持全刷新模式而不是部分刷新-刷新模式。所以在这种模式下缓冲区应该这么大?
我该如何解决这个问题?

更多回帖

发帖
×
20
完善资料,
赚取积分