TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI! TouchGFX 4.23 对Flash 的使用进行了整体优化。首先,它支持矢量字体的微控制器UI工具;其次,该新版本还支持直接将视频帧写入帧缓冲区从而节省存储空间。最后,可以通过仅对内部Flash编程来缩短编译时间。TouchGFX 4.23新特性 # Q8 X& S$ h. C矢量字体4 C5 b9 M) T' x 文本是大多数UI的重要组成部分,但却最容易被忽视。比如,许多人甚至不清楚font和typeface之间的区别。Helvetica和Avenir经常被称作font,但实际上都属于typeface。typeface是一种设计语言,用来塑造一系列字母、数字和图标的形态。font是typeface的子集,主要是限定文字的粗细或大小等属性。因此,Helvetica是一种typeface,而12磅Helvetica则是一种font。同样,12磅Helvetica Bold是另一种font。 这两者的区别为什么重要呢?因为嵌入式系统必须在编译时为每种字体渲染新的位图。PC需要使用轮廓字体(又称矢量字体),轮廓字体包含如何绘制的说明,而嵌入式系统需要使用位图。矢量字体需要很大的计算量,这对PC来说不是问题,但对微控制器来说,会造成UI运行缓慢。相反,已经完成渲染的位图不涉及任何计算,但会占用更多存储空间,因为系统必须对每种字体进行单独渲染。例如,三种Font(同一typeface所对应的三种不同大小)的位图会占用将近800字节的内存,而一个矢量文件所占用的内存不到200字节。* R5 Z i8 P' F3 ?3 N ▲ 图示:渲染矢量字体 TouchGFX Designer能够在MCU上使用矢量字体的UI工具,为希望减少Flash占用空间的工程师带来了福音。有了这一功能,某些应用场景下,开发者只需使用MCU的内部Flash,大幅降低了BOM成本。产品或公司标识往往需要比字母文字系统用到更多的位图,因此节省存储空间的效果更加明显,实际效果因具体应用而异。此外,存储器市场价格波动频繁,而我们这个新版本可以帮助开发人员减少对外部Flash的需求。! R6 @/ q# ~" T; |意法半导体旗下已有多款STM32 MCU在技术上支持矢量字体,STM32U5和最新推出的STM32H7R/S内部集成了NeoChrom GPU,出色的加速矢量计算的能力让矢量计算真正切实可行。例如,STM32F7渲染一个矢量字体可能需要花费2.88 ms,而STM32U5F9仅需0.80 ms。同样,最近针对TouchGFX先前版本的矢量优化也能有效减轻负载。但并非每种UI都能从轮廓字体中受益,比如需要使用大量动画的系统。 矢量字体并不是节省存储空间的唯一方法,ST的L8压缩系统也可以缩小位图。每个项目都有不同的Flash需求,每个UI也都有特殊的渲染需求。有些项目只能使用有限的外部Flash,有些项目倾向于使用内部Flash,还有些项目仅需要缩短编程时间。但总的来说,越来越多的客户都希望UI占用的Flash空间更少。因此,矢量字体为无法通过其他方式缩减占用空间的UI提供了一个解决方案。 6 m' z) x9 R4 m 将视频直接写入帧缓冲区 TouchGFX 4.23还具备一项有助于减少应用所占存储空间的功能,那就是自动将系统配置为直接写入帧缓冲区。通常情况下,系统在显示视频时会先将帧存储在视频缓冲区中,然后将其传输到提供显示的帧缓冲区。增加这一中间步骤是为了确保所有资源均处于可用状态,以保证平滑的动画播放效果。但这样会占用更多的存储空间,因为必须先将视频帧写入一个缓存,然后才能将其移动到帧缓冲区。这就导致在较小的STM32 MCU上显示视频需要更高的成本。" u& ^8 s+ N6 @4 Z- W ▲ 图示:将视频帧直接写入帧缓冲区的示意图 TouchGFX之前的版本已经支持直接将视频帧写入帧缓冲区以进行纯软件渲染的功能。但使用硬件MJPEG解码器和Chrom-ART加速器需要复杂的手动实现,因为开发人员需要调整同步和底层驱动。这需要用到大量的专业知识,所以无法得到广泛应用。TouchGFX 4.23推出了一项新功能,可以自动完成微控制器的初始化,使用MJPEG引擎和Chrom-ART将视频帧直接写入帧缓冲区。该功能成为新的默认配置,可有效减少运行视频控件所需的内存空间。: m) T$ w' v. J: ~4 |. l# R" b$ a ) g- z' m0 y" q7 B! M: y. F! ]: t 更快的Flash编程 TouchGFX Designer新增了仅烧录内部Flash的功能,大大减少了编程时间。事实上,每当编译界面的时候,TouchGFX都会加载所有数据,其中包括存储在外部存储器中的数据(即使他们没有变化)。因此,有时即使开发人员没有更新任何存储在外部的数据,编译操作也可能需要花费近10分钟的时间。为了优化工作流程,TouchGFX Designer 4.23中新增了一个仅编程内部Flash的选项,可将编译操作的用时缩减为几秒钟。但开发人员应当注意,如果在修改存储在外部Flash中的资源后忘记对外部Flash进行烧录,则可能会对应用造成损坏。 ; Y4 Q4 C2 ~6 m7 B, D |
【STM32H7S78-DK】汽车仪表系统
【STM32H7S78-DK评测】TouchGFX (QR Code)二维码生成器
【STM32H7S78-DK评测】-5 LVGL&DMA2D DEMO测试
【STM32H7S78-DK评测】有点艰难的亮屏
基于STM32实现“单芯片”模式:TouchGFX 4.24 的创新分析
【STM32H7S78-DK评测】TouchGFX 按钮操作-点亮LED
有奖直播 | STM32图形解决方案,让你的产品轻松的脱颖而出
【NUCLEO-H533RE评测】4、移植TouchGFX
[NUCLEO-C031C6评测] 驱动LCD 第三步 显示颜色块
实战经验 | TouchGFX 处理按钮长按的一种方法
很不错的功能,已经开始试用了