本帖最后由 moticsoft 于 2023-4-4 16:40 编辑
@21小跑堂
B站视频版本在这:
https://b23.tv/VFVmHmm
一、简介
有幸参与“华芯微特”开发板评测活动,针对开发板的资源情况,已经有很多小伙伴发帖介绍了,这里不在赘述。
[size=10.5000pt]本人也是想找一款高性价比的屏驱MCU,参与评测主要还是看重SWM34S系列内置2MB~16MB SDRAM。这一特性在同类MCU产品中几乎是独一份。一般情况都是要自己外扩SDRAM芯片作为GUI和LCD显存,除了成本增加,还会占用一部分PCB空间,而SDRAM布线也还是有些门道,要想稳定运行还是需要一点功夫。当然现在也有不少内置大容量内存的芯片,如D1s(内置64M DDR2),但这些芯片往往需要上Linux系统,也不是单片机工程师所以熟知领域;同时Linux启动也需要一定时间,对于需要快速启动的应用场景也存在限制。因此对于SWM34S开发板还是非常期待的,支持硬解码JPEG,支持DMA2D,Cortex-M33 150MHz……
[size=10.5000pt]开发板长这样:)
[size=18.0000pt]
[size=18.0000pt]二、评测
[size=10.5000pt]
[size=10.5000pt]本次评测侧重于LVGL Benchmark Demo,通过配置LVGL不同的buffer尺寸和位置(内部SRAM或SDRAM)、DMA组合,根据benchmark数据分析SWM34S的屏驱性能。
[size=10.5000pt]分析华芯微特官方的LVLG例程,提供了4种配置(以下表格中序号1-4),我自己增加了两种配置(以下表格中序号5、6)。
[size=10.5000pt]例程中LVGL显示buf有单buf和双buf两种情况;为buf分配的内存有的位于内部sram,有的位于SDRAM;由于片内sram有限,无法做到全屏buf,只能够分配一定的行数,官方的为10行,我又添加了28行单buf和14行双buf的情况。
[size=10.5000pt]disp1配置在LVGL刷屏函数disp_flush中使用For循环逐点刷屏,这无疑是效率最低的一种,后面的FPS数据可以验证。disp2_1和disp2_2在buf配置相同的情况下,分别使用DMA2D和普通DMA来刷屏,我们可以借此来观察两种DMA的差异。disp3则充分发挥了SWM34S芯片的优势,在SDRAM中配置了两个全尺寸的buf,并且在disp_flush函数中直接交换LCDC控制器的显存地址为当前LVGL显存地址,节省了再次将LVGL buf内容传输到LCDC显存的时间。即:LCDC显示前台画面,LVGL在后台buf绘制新的画面,当LVGL绘制完成,则直接将LCDC的显存地址指向后台buf(画面刷新为最新画面),LVGL又在之前的前台buf绘制新的画面,如此往复。这种乒乓操作是效率比较高的工作模式,充分发挥了SWM34S内置SDRAM的优势。
[size=10.5000pt]接下来看看LVGL Benchmark的FPS。
[size=10.5000pt]1. [size=10.5000pt]Disp3果然是最高的28fps。
[size=10.5000pt]2. [size=10.5000pt]对比disp2_1和disp2_2,我们发现普通DMA用于传输数据似乎也有不错的表现,实际上DMA2D有一些优势是普通DMA不具备的,这里不在赘述。
[size=10.5000pt]3. [size=10.5000pt]对比disp2_1和disp1_2,当buf尺寸由10行变为14行时,提升了3fps,由此可以看到较大的buf对fps有正面的影响。
[size=10.5000pt]4. [size=10.5000pt]对比disp1_1和disp1_2,可发现同样大小的内存空间,配置为单buf和双buf时对帧率的影响。
[size=10.5000pt]
[size=18.0000pt]三、数据
[size=10.5000pt]
[size=10.5000pt]以上表格显示benchmark数据汇总以及分类汇总。
[size=10.5000pt]总分为所有测试项目的得分累加,不出意外的看到disp3配置得分最高,而disp1_2也只低了不到100分。
[size=10.5000pt]另外还有细分项的得分累加,我将benchmark测试分为3类:图形(指矩形、圆形、线等绘制)、图像(Image RGB、ARGB显示等)、文本。可以看到在图像一项,disp1_2竟然比disp3的得分还高,意味着有时候可能要根据实际测试数据来选择最优的buffer配置。
四、总结
评测过程中有一些愚见,提出来请指正。
在Keil下载烧录环节有些折腾,这个在其他小伙伴的评测中也有体现,或许有些潜在的用户卡在这一步就被劝退了。希望官方能出更详细的指导书,比如Jlink如何配置,DAP-Link如何配置,让大家能够快速进入评测阶段。
片内64K RAM感觉有些少,如果片内有512K(这个在MCU中应该是挺常见了),将LVGL的缓存放在片内,LCDC的显存放在SDRAM,由此可以避免SDRAM对总线带宽的竞争,FPS可能还会有提升。期待更高主频的型号, 800*480 达到 60FPS, 那就完美了.
完整数据表:蓝色填充为图形分类,棕色区域为图像分类,黄色分类为文本分类。
|