|
前言:
当前主流GUI框架如 GUIX、TouchGFX、Embedded Wizard、AWTK等,均提供了分段绘制功能,以支持小内存单片机实现仅使用内部SRAM的情况下达到较为流程的UI效果,而作为使用最为广泛和大家最熟知的emwin对分段绘制的支持不太友好,特别是使用了WM的情况下,未提供分段绘制的接口,对于驱动SPI\I2C接口的液晶屏,只能外挂SRAM芯片作为显存,一方面增加了硬件成本,另一方面对EMC测试产生较大影响。为解决这个问题,本人近段时间作了一些探索,取得了一些成果,准备分成几个部分逐步与大家分享。
今天先进行基础性能测试,目的在于验证使用内部SRAM时GUI性能到底如何,能否满足UI流畅运行的基本条件。
由于手里目前只有407的开发板,这系列的测试都是基于407系列,后续如果有条件可能会在103等系列进行测试。
测试条件:
单片机:STM32F407ZET6 内部SRAM总共192kB 优化等级-o3 运行时间优化
屏幕:320*240TFT 4线SPI 驱动芯片ST7789V
测试参数:主频168M SPI频率42M
由于407内部SRAM不够放下整个屏幕数据,使用256*120大小的部分屏幕进行测试,后面实现分段绘制后可进行全屏绘制。
刷图块理论最大速度:168000000*2(一次操作4字节相当于两个565像素点)/3(数据赋值+循环开销) = 112,000,000 pixel/s;
实测结果:
CPU绘制测试结果(对循环开销进行了优化);
CPU绘制
刷纯色图块性能为 1.7亿像素每秒。
DMA绘制测试结果:
DMA绘制
比较意外的是DMA速度反而更慢,只有6800万点。
结论:使用单片机内部SRAM也能够达到比较好的GUI性能,为后续分段绘制的流畅性打下了基础。
未完待续。。。
|
评分
-
查看全部评分
|