打印
[STM32N6]

【STM32N6570-DK测评】LVGL benchmark

[复制链接]
616|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 xhackerustc 于 2025-5-10 08:27 编辑

从以往经验要运行LVGL,移植过程很繁琐耗时,难倒是不难,但是需要按照LVGL官方移植文档每个芯片甚至每个板子都要移植一次。但是正如笔者一开始提到的,对于大sram、大flash、高性能的MCU如STM32H7,STM32N6来说再按以前的单片机软件开发的做法其实很费劲,这时候就应该以适当的资源overhead来换取代码的复用,降低维护成本,具体来说就是切换到有比较完整和成熟生态的RTOS上来,zephyr是笔者最最推荐的,下面就以LVGL benchmark demo为例展示下zephyr的方便快捷程度。

首先zephyr中已经集成移植好LVGL并写好了好几个demo,板级开发只要按zephyr规定做好display驱动部分,LVGL就开箱即用了。这已经有Linux下驱动那味了:做好DRM驱动,什么Xorg、wayland即立马可用

充分利用大sram特性,开发中免去烧录过程
因笔者想充分利用大sram特性,加载到sram从sram运行,能不烧录flash就不烧录flash。幸运的是stm32n6的sram充分大,使得把LVGL与其demo都编译了sram也能完全放得下。但是主线zephyr中默认是要烧录flash的,所以它的默认sram配置非常保守,笔者给它改大些:
diff --git a/dts/arm/st/n6/stm32n6.dtsi b/dts/arm/st/n6/stm32n6.dtsi
index e779082794c..d29d0c29675 100644
--- a/dts/arm/st/n6/stm32n6.dtsi
+++ b/dts/arm/st/n6/stm32n6.dtsi
@@ -40,9 +40,6 @@
                compatible = "mmio-sram";
        };

-       axisram2: memory@34180400 {
-               compatible = "mmio-sram";
-       };

        clocks {
                clk_hse: clk-hse {
diff --git a/dts/arm/st/n6/stm32n657X0.dtsi b/dts/arm/st/n6/stm32n657X0.dtsi
index b503ffed905..87071b4c3c5 100644
--- a/dts/arm/st/n6/stm32n657X0.dtsi
+++ b/dts/arm/st/n6/stm32n657X0.dtsi
@@ -9,10 +9,6 @@
/ {
        axisram1: memory@34000000 {
                /* 400 kB of FLEXRAM followed by 624 kB of AXISRAM1 */
-               reg = <0x34000000 (DT_SIZE_K(400) + DT_SIZE_K(624))>;
-       };
-
-       axisram2: memory@34180400 {
-               reg = <0x34180400 DT_SIZE_K(511)>;
+               reg = <0x34000000 (DT_SIZE_K(800) + DT_SIZE_K(624))>;
        };
};

再配置下LVGL demo
west build -b stm32n6570_dk --build-dir=/tmp/test/build samples/modules/lvgl/demos -t menuconfig

注意选中LV_Z_DEMO_BENCHMARK与LV_USE_PERF_MONITOR选项,后一选项对跑benchmark并非必须的,它就是在LCD上显示性能数据用,benchmark嘛当然要数据咯

编译
west build -b stm32n6570_dk --build-dir=/tmp/test/build samples/modules/lvgl/demos



直接运行
halt
load_image /tmp/build/stm32n6.bin 0x34000000
reg pc 0x34008ae4
resume



LVGL benchmark视频供欣赏
https://www.bilibili.com/video/BV1KJV9zjEVV/

可以看到跑30fps毫无压力,整个过程cpu使用率并不高大部分时间在1%到30%之间,在文本下拉测试过程瞬间曾最高达到80%使用率,但是注意它的fps仍然保持在30fps左右,很了不起的成绩。

总结
大家发现没有,本次LVGL测试并没涉及到LVGL移植,极其方便,对真正做到了对开发者开箱即用,而且笔者相信ST官方在添加display驱动支持时,也并不需要改动任何LVGL的东西,只要保证display驱动和dts符合zephyr标准即可,这种方便正是zephyr RTOS带来的优势。



使用特权

评论回复
沙发
xhackerustc|  楼主 | 2025-5-11 10:31 | 只看该作者
因zephyr暂无STM32N6的GPU支持,所以这个LVGL应该无GPU加速,一旦ST把GPU支持给做到zephyr中去,cpu使用率会大幅降低

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

159

帖子

1

粉丝