• OneOS 下的 GUI 框架测试


    1.简介

    最近在学习RTOS,发现国产RTOS竟然已经发展得这么蓬勃了,之前一直喜欢用freertos,但现在更多得国产物联网操作系统更让我值得期待和尝试了。此次,主要是体验下中国移动旗下得一块轻量级RTOS,通过配置组件,使能GUI模块,顺便跑了下demo,发现惊喜连连,棒棒哒!

    OneOS是中国移动针对物联网领域推出的轻量级操作系统,具有可裁剪、跨平台、低功耗、高安全等特点,支持ARM Cortex-M/R/AMIPSRISC-V等主流CPU架构,兼容POSIXCMSIS等标准接口,支持Micropython语言开发,提供图形化开发工具,能够有效提高开发效率并降低开发成本,帮助客户开发稳定可靠、安全易用的物联网应用。

    轻量级GUI框架是基于LVGL8.2,是一个C语言编写的免费的开源图形库,提供了用于嵌入式GUI的各种元素。用户可以利用丰富的图形库资源,在消耗低内存的情况下构建视觉效果丰富多彩的GUI。

    Benchmark是LVGL性能测试的测试用例。其在矩形、边框、阴影、文本、图像混合、图像变换、混合模式等各种情况下进行性能测试。测试期间对象的大小和位置使用伪随机数设置,以使得性能测试可重复。

    2.测试步骤

    使用menuconfig配置Benchmark性能测试用例,并使用keil或者gcc编译,并烧写程序到stm32f469-st-disco板子上去。

    重启开发板,此时,性能测试将会运行,屏幕顶部显示当前测试步骤的标题和上一步骤的结果。

    测试结束后,将创建一个表格来显示测量的FPS值。

    3.测试原理

    FPS的代码测量原理如下:

    1. 构造scene_dsc_t结构体,并在其中保存各种场景下的帧率测试所需数据,包含:场景名、用于场景测试的回调函数、消耗渲染时间、刷新次数,以及权重。其中测试场景48个,叠加显示不透明度与完全不透明度方式,则测试总场景96个。
    2. 在显示驱动的回调函数 monitor_cb中,实现累积渲染时间和周期数。
    3. lv_demo_benchmark帧率测试入口函数中,调用scene_next_task_cb函数,并在其中调用每一个scene_dsc_t结构体中的场景测试回调函数,对每一个场景进行测试。

    测试范围包括:

    1. 矩形:普通矩形、圆角矩形、圆形
    2. 边框:普通边框、圆角边框、圆形边框、上边框、左边框、左上边框、左右边框、上下边框
    3. 阴影:小阴影、小阴影偏移、大阴影、大阴影偏移
    4. 图形:RGB图形、ARGB图形、chorma keyed图形、indexed图形、alpha only图形、RGB图形着色、ARGB图形着色、chorma keyed图形着色、indexed图形着色、RGB图形旋转、RGB图形平滑旋转、ARGB图形旋转、ARGB图形平滑旋转、RGB图形缩放、RGB图形平滑缩放、ARGB图形缩放、ARGB图形平滑缩放
    5. 文本:小型文本、中等文本、大型文本、压缩的小型文本、压缩的中等文本、压缩的大型文本
    6. 线条
    7. 弧形:普通弧线、粗弧线
    8. 混合模式:混合模式下的矩形、混合模式下的边框、混合模式下的阴影、混合模式下的图形、混合模式下的线条、混合模式下的弧线、混合模式下的文本

    对于简单的测试情况,它可能会导致非常高的FPS结果。例如如果在5毫秒内绘制一些简单的矩形,基准测试将显示其为200 FPS。因此,它忽略了LV_DISP_REFR_PERIOD,它告诉LVGL刷新屏幕的频率。换句话说,测试显示了纯渲染时间的FPS,而不受该宏的限制。

    4.结果分析

    本轻量级GUI帧率测试使用LVGL官方benchmark,硬件选择stm32f469-st-discoCoretex-M4核心。最终经过测试,得到平均帧率约为80FPSOpa.speed部分,显示不透明度与完全不透明度相比的测量速度。

    在表格的第一部分“缓慢但常见的情况”中,显示了被视为常见但速度低于20 FPS的情况。下面的All cases部分则显示了所有结果。

    首发链接:https://my.oschina.net/u/5412040/blog/5546466

  • 相关阅读:
    gurobi属性篇一
    IC设计中glitch free时钟选择器的设计过程
    微服务原理
    ros中对move_base的调用
    [附源码]java毕业设计合租吧管理系统
    【LIUNX】机器互访:免密登陆
    object类的一些方法
    【001】变量知多少
    视频编码原理补(H264)
    LM小型可编程控制器软件(基于CoDeSys)笔记二十:plc通过驱动器控制步进电机
  • 原文地址:https://blog.csdn.net/xuxuluo/article/details/125506568