专注于产品开发平台解决方案

Qt for MCUs 2.2LTS新技术与生态合作
分享:

回顾历史版本

Since 1.0

26 new major features9 new reference MCUs1 new reference target OS1 new compiler support1 new host platform163 bug fixes



Qt for MCUs 2.2LTS长周期支持

› Qt for MCUs 2.2 is the first LTS release

› QML APIs aligned and compatible with Qt 6.2 LTS

› 1 patch release every 6-8 weeks for 18 months, starting August 2022



支持的MCU平台



Qt for MCUs 2.2LTS新技术

文字处理

Qt for MCUs处理文字

-支持Glyph位图字体

• 编译时TTF自动转换为位图

• 极低的CPU占用

-支持Monotype Spark™字体引擎

• 专门为MCU环境设计

• 低CPU和内存占用

• 高性能矢量字体运行时绘制引擎

• 提供字体编辑工具



Monotype Spark Font Engine (TP)



国际化语言显示文本



文本溢出处理

› What is it and why is it important?

Display dynamic text and translations that are too long to fit in limited screen space. Must-have for dynamic UIs.

› What’s new?

QML property: Text.elide

Enum values: Text.ElideNone (default), Text.ElideLeft, Text.ElideMiddle, Text.ElideRight

› What should I know?

-Behavior aligned with Qt-Text width (or right and left anchors) must be set-Works with multiline text if Text has an explicit height

› Learn more

https://doc-snapshots.qt.io/qtformcus-dev/qml-qtquick-text.html#elide-prop



文本自动变形

› What is it and why is it important?

Automatically wrap text when it’s wider than the available space. Must-have for dynamic UIs and multi-language applications.

› What’s new?

QML property: Text.wrapMode

Enum values: Text.NoWrap(default), Text.WordWrap, Text.WrapAnywhere, Text.Wrap

› What should I know?

-Behavior aligned with Qt-Text width (or right and left anchors) must be set.

-Not available for StaticText

› Learn more

https://doc-snapshots.qt.io/qtformcus-dev/qml-qtquick-text.html#wrapMode-prop



图片优化及资源管理

Qt for MCUs处理图片

-未压缩的RGB格式速度很快,但闪存成本非常高。

-PNG格式高压缩率闪存占用空间低,但需要更多的RAM来保存解压缩的数据。

-RLE压缩,轻量级,低闪存和低RAM,并且提供足够快的解压缩时间。



RLE压缩



OPTIMAL USE OF HARDWARE:Improved management of graphical resources

› Why is this valuable?

Achieve UX goals while keeping hardware costs to a minimum

› What’s new?

-New CMake APIs for graphical resource configuration

-Fine-grained placement of individual resources

› Why is it important?

Reaching the desired frame rate and fitting the GUI in memory often requires an optimized placement of resources

› Learn more

https://doc-snapshots.qt.io/qtformcus-dev/qtul-resources.html#resource-placement-in-memory



OTA GUI UPDATES:Replaceable resources in deployed applications

› Why is this valuable?

-Cheaper device firmware update process for specific use cases

-Full software recertification is not needed

› What are the use cases?

-GUI style update

-Device (re-)branding

-Downloadable GUI skins

› What’s new?

-Image resources can be replaced without re-flashing the complete application

-CMake build target to compile resource binaries

› Learn more

https://doc-snapshots.qt.io/qtformcus-dev/qtul-resources.html#ota-resources-update



新的错误处理机制错误处理

› What is it and why is it important?

APIs to be notified of errors in GUI code and react appropriately. Enables robust and traceable applications.

› What are the use cases?

Some examples:

-detailed logging for debugging or device diagnostic-restart the device on memory allocation failure in QUL

› What’s new?

C++ API: Qul::setErrorHandler(), QUL_ASSERT()

Enum: QulError

› What should I know?

-The default error handler prints an error message in the console.

-Custom handlers can be implemented for custom logging or mitigation actions.

› Learn more

https://doc-snapshots.qt.io/qtformcus-dev/qtul-error-handling.html



代码生成工具qmlprojectexporter

技术预览: qmlprojectexporter

› What is it and why is it important?

New ways to generate C++ code from a QML project, enabling new and better workflows. Possibility to build QUL applications in any IDE or build system.

› What’s new?

New project file format: .qmlproject

New command-line tools: qmlprojectexporter, platform exporter

› What should I know?

-Optional feature, users can still use the old way of building QUL applications for compatibility reasons

-Available as Tech Preview, APIs can change in v2.3

› Learn more

https://doc-snapshots.qt.io/qtformcus-dev/qtul-qmlproject-qmlprojectexporter.html

https://doc-snapshots.qt.io/qtformcus-dev/qtul-qmlproject-qmlprojectexportercmd-qmlprojectfile.html

https://doc-snapshots.qt.io/qtformcus-dev/qtul-platform-exporter.html



构建APP静态库

Static Library Build



Example:https://doc-snapshots.qt.io/qtformcus/quickultralite-static-library-example.html



性能优化指南

Performance and footprint guide

-Achieving good performance with a low memory footprint is challenging

-New documentation with guidelines, tips, and tricks to help get the best results faster

-Instructions on how to collect performance data from the device

› Learn more

https://doc.qt.io/QtForMCUs-2.2/qtul-performance-guide.html

https://doc.qt.io/QtForMCUs-2.2/qtul-performance-logging.html



生态合作

Qt for MCUs on 杰发 ac8015:透明alpha图片显示



Qt完成芯驰最新车规级芯片适配,助力车载HMI创新加速



Qt for MCUs on SemiDrive – E3



Qt for MCUs on 乐鑫 Espressif ESp32-S3-BOX



Qt for MCUs on OneOS 国产思澈芯片

中国移动OneOS是为物联网行业打造的可裁剪、跨平台、低功耗、轻量级实时操作系统。中移物联与Qt共同推出了Qt for MCUs-OneOS,通过OneOS的芯片适配能力,针对硬件底层进行GUI适配,可广泛应用于表计、穿戴、家居、工业控制等行业。“Qt for MCUs-OneOS拥有极致性能,让我们可以快速开发、上线新应用,大大提升了生产效率。中国移动作为一家全球领先的通信运营商,拥有大量中小型企业客户,”OneOS产品总监孙靖评价,“我们与Qt合作,一方面提升了OneOS的GUI组件平台能力,同时也让更多企业用户获得了Qt的商业软件价值,希望未来有更多的用户能和我们一起来共建国产物联网操作系统的生态圈。”



Qt for MCUs助力延锋伟世通打造单芯片车载仪表平台

HMI及图形渲染专家来自汽车仪表解决方案的知名供应商延锋伟世通,团队专注于图形渲染、车载仪表以及智能座舱项目的研发工作。随着车载仪表的显示日益复杂,越来越多的OEM或车企更愿意使用单芯片平台来实现全液晶仪表盘的功能。在评估了市面上多个主流的GUI框架后,延锋伟世通最终选定Qt for MCUs来开发这个基于低成本芯片的车载仪表HMI平台:

- Qt for MCUs有非常强大的开发团队;

- Qt for MCUs支持跨平台方案,在开发过程中无需考虑平台迁移的问题,极大节约了开发成本。



Qt for MCUs on AUTOSAR CLASSIC



关于Qt

Qt是一套业界领先的产品开发框架,可供前端设计师和开发人员适用于各种设备和操作系统的先进的UI/UX。

Qt被广泛应用于70多个行业,并在全球范围内建立了完善的生态系统——每年下载量达数百万次。Qt拥有强大的合作伙伴生态——全球有超过100家软件服务公司和SoC方案供应商具备Qt开发能力。




行业痛点
解决方案
应用案例