【Qt 企业近日公布了新的工具箱:Qt for MCU。】
观后感博闻
https://blog.qt.io/cn/2018/08/15/qt_on_microcontrollers_mcu/
这篇博闻汉语翻译让我有一些启迪
以前也一直有疑虑,能不能在单片机(MCU)上运行Qt呢?Qt能不能不依靠操作系统运行(裸跑)?很早以前情况下,就听闻了Qt for MCUs这一新项目。见到这篇博闻以后也深有感触。
QT在单片机上的运行演试视頻
简易详细介绍这一新项目,Qt for MCU 可以在沒有操作系统的设施上运行,容许开发工作人员在具备成本效益的单片机上建立顺畅的操作界面,根据 Qt 的应用软件现在可以布署在传统式操作系统与根据 ARM Cortex M7 的单片机上。
新项目的实际意义在哪
大家都了解,体型小,功能损耗低再加上成本低是单片机的关键特性,PCB Layout复杂性相对性于Cortex-A那般等级的MPU而言要低许多,在规定并不是非常高的情形下,便宜的价钱对大批量生产优点显著。并且不论是全部BOM成本费或是开发工作人员的规定MCU都比较要有优点。
Qt是一个1991年由Qt Company开发的混合开发C 图形界面设计应用软件开发架构。它既可以开发GUI程序流程,也可用以开发非GUI程序流程,例如控制面板专用工具和网络服务器。它的混合开发特性、五花八门应有尽有的类库(包含用户界面)、丰富多彩的方法及其贴心的开源项目相互配合内嵌式开发是一件创新点高level的事儿。
Qt for MCU 是怎样完成的呢?
回答是 Qt Quick。Qt Quick是Qt 4.7 中发布的一项新技术应用。Qt Quick 是一种高級操作界面技术性,应用它可更好地建立供挪动和内嵌式机器设备应用的动态性触控式页面和轻量应用软件。 其关键是 QML,从英语的语法上看,它有一种 JSON 觉得,低花销运行时使 QML GUI 可以与后面 C/C 编码关联,使 GUI 可以跨好几个服务平台开展移殖。
Qt for MCU 手机软件栈如图所示
根据一个新的 QML 到 C 的变换,再再加上一个新的申明性特性关联模块,在为 MCU 开发一切应用软件的与此同时,开发工作人员依然可以应用她们强劲的申明性 UI 语言表达 QML 和充实的现有 Qt Quick 控制集来完成作用,沒有操作系统的情形下,立即在CPU运行,业内称之为“在裸金属上运行”
技术性难题
Qt 一直是在x86、A9、Cotex-A 系列产品运行,那麼即然是单片机,临时而言也是对硬件配置有高标准的。
256 MB 的RAM;500 MHz CPU (强烈推荐1 GHz);适用OpenGL ES 2.0.QT要想跑在MCU上面,或是必须QT精英团队做很多移殖和简单化的工作中,随后还需要移殖Qt Core、Qt GUI、Qt Widgets、Qt QML、Qt Quick Controls 2、Qt Network这种控制模块,以融入MCU的資源自然环境,QT还必须C 11c语言编译器的适用,Qt內部应用了大批量的POSIX接口函数
总体来说,有两个必备条件:
兼容POSIX的操作系统兼容C 11的c语言编译器展望
通过20年的发展趋势,QT的开发自然环境也愈来愈极致了,可是从开发的方面而言,从X86的桌面上到Cortex-A的移动智能终端,而且Qt for MCUs新项目以后,如今还添加了MCU的适用,Qt Quick Ultralite承担GUI服务器,Qt Core做为MCU逻辑性一部分的开发,应用上C 出色的面向对象编程的语言表达特性,最底层也有个RTEMS开源系统的即时操作系统,这对开发工作人员而言,挑戰极大。从文章内容根据STM32F769 的试验看来,也有许多的每日任务要做,移殖Qt自身描述如下所示
汇总
总得来说,这是一个很大的发展,尽管在MCU上也不缺 ** 的GUI处理解决方法,例如emWin、TouchGfx,但她们要不闭源要不收费标准贼贵、要不对开发而言不足友善乃至灭绝人性、页面实际效果尽管不会再傻大黑粗但也还不够骚性朝气蓬勃,这必须大家奉献自身的能量,而且迈向最前沿,勤奋自主创新。