TouchGFX 4.12提高STM32微控制器的性能

描述

  我们的免费图形用户界面TouchGFX现在正在对其引擎和设计器工具进行重要更新。TouchGFX 4.12 为公众带来了可缓存容器、部分帧缓冲区和我们的L8 图形压缩格式等功能,所有这些都将提高更多 STM32 微控制器的性能。随着嵌入式系统继续渗透主流市场,显示器和ipso facto的出现图形用户界面可以极大地改善消费者的体验。它解释了为什么报告显示越来越多的嵌入式系统工程师现在使用 GUI,以及为什么业界试图将它们安装在具有更严格计算吞吐量的 MCU 上。TouchGFX Designer 是我们的桌面工具,可帮助开发人员更快地利用 TouchGFX 引擎,减少编写 C++ 代码的需要,从而促进 MCU 的 GUI 开发。

  TouchGFX 4.12 也具有很高的象征意义,因为它是我们自 2018 年获得该解决方案以来的第一次重大升级,它成为我们STM32 生态系统不可或缺的一部分。我们的 MCU 背后的驱动理念之一是,无论工程师想要使用何种工具或解决方案,它们都能提供最佳性能和最广泛的功能集。这就是为什么我们很高兴也可以使用 Qt 等其他 GUI 解决方案,并且最近参加了一个研讨会,帮助想要在我们的微控制器上使用著名工具包的开发人员。但是,我们很高兴为 TouchGFX 带来有意义的更新,我们将继续致力于我们的解决方案,因为它为任何专业人士或爱好者提供了一个免费且强大的工具,目前智能手表制造商和家电制造商仅举两个例子,因此为所有 STM32 开发人员带来行业巨头。

  CacheableContainers:重新思考如何渲染框架

  CacheableContainer 是我们的 TouchGFX 团队在向公众提供之前开始为各种客户开发的技术。顾名思义,它使用位图缓存来显着加速图形性能,并通过大规模优化性能来实现更高的帧速率以实现更平滑的过渡。下面的视频显示了在STM32F429I 探索套件上运行的演示。如果没有 CacheableContainer 技术,简单的全屏 (240×320) 幻灯片动画以每秒 9 帧的速度运行。启用新的 TouchGFX 技术后,系统可达到每秒 60 帧,实现更平滑的过渡。 一些智能手表目前使用此功能来确保更无缝的用户体验,尽管其外形尺寸固有的重大硬件限制以及需要更长的电池寿命。当尝试为复杂的小部件(例如纹理映射器或静态背景前显示的小型动态元素)设置动画时,它可以最大限度地提高性能。

  在传统系统中,动画要求系统重绘每一帧,这会导致计算量大增。在屏幕 1 和屏幕 2 之间的动画中,大约需要 20 帧,每帧重绘大约需要 100 毫秒。CacheableContainer 通过将第一帧和最后一帧以系统保存在 RAM 中的位图形式存储在单独的容器中来绕过这个问题。系统不计算动画,而是使用 DMA 从内存中检索两个图像,并通过一个简单的 DynamicBitmap 方法将它们显示在不同的位置。MCU 不再需要渲染每一帧,从而显着优化性能。开发者只需勾选Cacheable在 TouchGFX Designer 中,选择要缓存的容器在内存中的位置,并在需要时调用它们。使用这种技术,渲染时间从 100 ms 下降到 5 ms。

  部分帧缓冲区:优化如何存储帧

  部分帧缓冲是我们为客户开发的另一项技术,在见证了它的巨大成果后,现在正在向公众推出。帧缓冲区是一个连续的内存空间,用于存储将出现在显示器上的每个像素的表示。例如,用于智能手表显示屏的标准 24 位 390 x 390 图像需要 3,650,400 位或 440 KB 的帧缓冲区(

控制器

),这几乎是STM32L4+ 上可用 SRAM 的 70%,在智能手表和可穿戴设备上表现出色。如果应用程序需要两个或三个帧缓冲区,这个数字可能会激增,从而使内存需求增加一倍或三倍。除了容量限制之外,大型帧缓冲区需要更长的时间来获取,因为更多的数据必须从内存传输到显示器,这会降低性能。

  顾名思义,一个Partial Framebuffer只存储了一部分framebuffer,它在内存中的大小平均减少了10。开发者可以根据屏幕实际变化的部分来配置它的大小,然后存储多个partial framebuffer 。 然后,TouchGFX 引擎将选择合适的引擎并将其发送到显示器。因此,系统不必获取整个缓冲区,而是使用小得多的文件,从而提高整体性能。 该技术最适用于短动画,例如时钟或随时间推移而构建的图表。它还要求屏幕使用嵌入式控制器,因为它将直接从 MCU 的 RAM 接收部分帧缓冲区,从而绕过 Flash 以进一步提高性能。该技术适用于并行/8080、DSI 和 SPI 显示器。

  L8 压缩格式和 TouchGFX Designer:优化资产和工作流程

  图形资源占用大量内存空间,直到现在,开发人员唯一能做的就是降低细节级别以缩小文件大小。不幸的是,这也意味着提供一个不那么引人注目的图形用户界面。L8 是独一无二的,因为它可以利用 STM32 微控制器中的 ChromART 加速器显着压缩图像文件。 只要资源最多使用 256 种颜色,这在小型嵌入式设备上的背景、图标或按钮通常是这种情况,开发人员只需在 TouchGFX Designer 中勾选一个框,就可以选择使用 L8 格式压缩资源。该系统生成的图像最多可缩小 75%,并且解压阶段的计算效率很高,因为它使用 ChromART 引擎在表格中查找各种颜色并在不损失质量的情况下解压资产。

  TouchGFX Designer 也有一些令人兴奋的更新。除了使这些新功能更易于访问之外,新工具还提供了新的小部件,例如模拟和数字时钟或纹理映射器,这意味着开发人员可以通过简单的拖放开始创建他们的映射程序。他们仍然需要输入他们的 C++ 代码,但这会使整个过程更加顺畅。同样,该工具还支持添加自定义触发器和操作,以使工程师即使不具备深入研究源代码所需的编程技能也能对其进行试验和测试。最后,TouchGFX Designer 现在能够以两倍的速度生成和加载系统,并且只在请求时执行,而不是自动,这可能会减慢开发人员的工作流程。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分