TouchGFX属于Draupner Graphics公司的GUI产品,在去年(2018年7月),TouchGFX被ST收购,在STM32上可以免费使用TouchGFX。
之前也写过关于GUI的文章:盘点嵌入式那些常见的GUI:emWin、TouchGFX、MiniGUI、Qt等。
一、TouchGFX Suite(开发套件)
TouchGFX是STM32生态系统中的免费工具。它由两部分组成:用于设计和配置丰富的用户界面的TouchGFX Designer PC工具,以及在终端设备上运行以确保较高UI性能的TouchGFX Engine软件。
二、TouchGFX 4.12
TouchGFX 4.12带来了可缓存容器,部分帧缓冲区以及L8图形压缩格式等内容,这些都将改善更多STM32微控制器的性能。
这也是ST自2018年收购该解决方案以来的首次重大升级,并且已成为STM32生态系统不可或缺的一部分。
三、CacheableContainers缓存容器
CacheableContainer是一项技术,顾名思义,它使用位图缓存来显着加速图形性能,并通过大规模优化性能来实现更高的帧速率以实现更平滑的过渡。
如果没有CacheableContainer技术,则简单的全屏(240×320)幻灯片动画将以每秒9帧的速度运行。启用了新的TouchGFX技术后,系统可以达到每秒60帧的速度。
尽管某些智能手表因其外形尺寸固有的重大硬件限制以及需要更长的电池寿命,但目前仍使用此功能来确保更无缝的用户体验。为复杂的小部件设置动画时,它可以使性能最大化。
在传统系统中,动画要求系统重新绘制每一帧,这可能会使计算变得昂贵。在屏幕1和屏幕2之间的动画中,大约需要20帧,重新绘制每个帧大约需要100毫秒。
原理:
CacheableContainer通过以系统保留在RAM中的位图的形式将第一帧和最后一帧存储在单独的容器中来绕过此问题。该系统无需计算动画,而是使用DMA从内存中检索两个图像,并通过简单的DynamicBitmap方法将其显示在不同的位置。
MCU不再需要渲染每个帧,从而显着优化了性能。开发人员只需勾选Cacheable在“ TouchGFX设计器”框中,选择要缓存的容器在内存中的位置,并在需要时调用它们。使用此技术,渲染时间从100毫秒降至5毫秒。
四、部分帧缓冲部分帧缓冲是ST为客户开发的另一项技术,有巨大的成果。帧缓冲区是连续的存储空间,用于存储将出现在显示屏上的每个像素的表示形式。
例如,用于智能手表显示屏的标准24位390 x 390图像需要3,650,400位或440 KB的帧缓冲器。 公式:
原理:
顾名思义,部分帧缓冲区仅存储一部分帧缓冲区,从而将其在内存中的大小平均减少10。开发人员可以根据实际更改的屏幕部分配置其大小,然后存储多个部分帧缓冲区。
TouchGFX引擎将选择合适的引擎并将其发送到显示器。因此,系统不必获取整个缓冲区,而是使用更小的文件,从而提高了整体性能。
该技术最适合短动画,例如时钟或随时间推移而建立的图形。它还要求屏幕使用嵌入式控制器,因为它将直接从MCU的RAM接收部分帧缓冲区,从而绕过Flash以进一步提高性能。该技术可用于Parallel / 8080,DSI和SPI显示器。
五、L8压缩格式和TouchGFX开发工具
图形资源在内存中占用大量空间,直到现在开发人员唯一能做的就是减少细节以缩小文件大小。不幸的是,这也意味着要提供不太友好的图形用户界面。
L8的独特之处在于,它可以利用STM32微控制器中存在的ChromART加速器来显着压缩图像文件。只要图片资源最多使用256种颜色,开发人员就可以选择通过使用L8格式压缩图形资源,只需在TouchGFX开发工具中打勾即可。
该系统生成的图像缩小了多达75%,并且解压缩阶段在计算上非常有效,因为它使用ChromART引擎查找表格中的各种颜色并对资产进行解压缩而不会降低质量。
全部0条评论
快来发表一下你的评论吧 !