最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429
本章主要介绍GUIX和GUIX Studio的基础知识。
目录
第3章 ThreadX GUIX和GUIX Studio介绍
3.1 初学者重要提示
3.2 Express Logic公司介绍
3.2.1 ThreadX内核
3.2.2 FileX文件系统
3.2.3 NetX网络协议栈
3.2.4 USBX协议栈
3.2.5 LevelX擦写均衡保护层
3.3 GUIX简介
3.3.1 基础介绍
3.3.2 内存需求
3.3.3 API命名规则
3.3.4 快速执行
3.3.5 安全认证
3.3.6 简单易用
3.3.7 支持的控件种类
3.3.8 完善的底层绘图API
3.3.9 免费字体
3.3.10 支持的颜色格式和触摸
3.3.11 GUIX模拟器
3.3.12 支持的硬件平台
3.4 GUIX Studio简介
3.5 GUIX性能测试
3.6 GUIX论坛
3.7 总结
ThreadX的作者是William lamie(同样是Nucleus RTOS的原始作者,于1990年发布)。1996的时候成立了Express Logic,并于1997发布首版ThreadX RTOS。
ThreadX几乎是小型RTOS的巅峰之作,不管你之前用的那个OS,如果有精力建议还是学习下。62亿电子设备采用,是其它RTOS无法逾越的高山。ThreadX的产品涵盖了各种领域,包括NASA的多个太空探测项目,飞机自动驾驶仪系统,火星侦察轨道器等。
ThreadX及其所有中间件的安全认证等级,至今没有一款小型RTOS可以与其匹敌。这么多安全认证,公司要入大量财力,人力和物力才可以完成,早前Micrium的一篇文章还谈过这个问题,投入了太多资金和人力了,还与风河的VxWorks做了简单对比。
(1)医疗 - FDA510(k),IEC-62304 Class C,IEC-60601,ISO-14971
(2)工业 - UL-1998,IEC-61508 SIL 4
(3)运输/铁路 - EN50128 SIL 4,BS50128, 49CFR236,IEC-61508
(4)航空航天设备 - DO-178B,ED-12B,DO-278
(5)汽车 - IEC-61508 ASIL D
(6)核应用 - IEC-61508
(7)家电 - UL/IEC 60730/60335
规格如下:
更详细的介绍地址:https://rtos.com/solutions/threadx/real-time-operating-system/ 。
ThreadX的文件系统非常强劲,通过了各行各业的高等级安全认证。其它文件系统别说安全认证了,安全措施都不多,甚至没有。
规格如下:
再看API,一个文件系统竟然提供了230多个,仅异常处理的API就有20个(一个文件一个API)
更详细的介绍看此贴:https://rtos.com/solutions/filex/embedded-file-system/。
ThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:
各个行业的安全认证:
物联网协议方向安全认证:
加密库也做了认证:
更多介绍可以看此贴:https://rtos.com/solutions/netx-duo/embedded-network-stack/ 。
USB协议栈也不错,日常用的功能也齐全
规格如下:
更多介绍可以看此贴:https://rtos.com/solutions/usbx/embedded-usb/
LevelX为NAND和NOR型Flash提供擦写均衡支持,并且对于NAND型,还支持ECC校验和坏块管理。
由于NAND和NOR型Flash擦除次数是有限的,因此均匀分配闪存使用至关重要。这通常称为擦写均衡,LevelX为此而生。LevelX向用户提供一个逻辑扇区阵列,这些逻辑扇区映射到LevelX内部的物理闪存。应用程序可以将LevelX与FileX结合使用,也可以直接读取/写入逻辑扇区。LevelX专为容错而设计。Flash更新是分多个步骤进行的,每个步骤都可以中断。在下一次操作期间,LevelX自动恢复到最佳状态。
GUIX是微软的高级工业级GUI解决方案,专门针对深度嵌入式,实时和IoT应用程序而设计。微软还提供了名为GUIX Studio的桌面开发工具,该工具允许开发人员在桌面上设计其GUI并生成GUIX代码,然后可以将其导出到目标。
GUIX通过了医疗认证IEC-62304 Class C,汽车认证IEC-61508 ASIL D,工业认证IEC-61508 SIL 4和运输/铁路认证EN50128。表明GUIX可用于安全关键型系统。
直观一致的API
控件库
数学和实用功能
图像处理
事件处理
Canvas画布处理
输入设备驱动
显示驱动和目标硬件
对于集成了内部GRAM和自刷新技术的显示屏,可以不需要canvas画布支持。这种情况下,GUIX需要的最小Flash是13.2KB,RAM是4KB。
所需画布大小的计算公式如下:
Canvas RAM (bytes) = (x * y * (bpp/8))
其中x和y分别是画布的长和宽,而bpp是画布的颜色深度,比如RGB565,颜色深度bpp就是16bit,即两字节。
另外大多数应用还会用到图形资源和字库,这个占用大小由实际应用而定。
GUIX的函数命名规则是:Noun-verb naming convention (名词动词命名约定)。根据这个命名规格,我们实际看下个API,比如:gx_widget_front_move ,前缀gx,名词widget_front_,动词move。再看下面API截图(部分函数截图):
基本也都符合这个要求。
Azure RTOS GUIX是专门用C编写的,旨在提高速度。Azure RTOS GUIX具有最小的内部函数调用分层。
此外,Azure RTOS GUIX还提供了优化的剪辑,绘制和事件处理。所有这些以及通用的面向性能的设计理念可帮助Azure RTOS GUIX实现最快的性能。
GUIX通过了医疗认证IEC-62304 Class C,汽车认证IEC-61508 ASIL D,工业认证IEC-61508 SIL 4和运输/铁路认证EN50128。表明GUIX可用于安全关键型系统。
注:SGS-TUV公司由德国SGS集团和TUV合资企业组成,现已成为领先的认证公司,致力于测试,审核,验证和认证全球安全相关的嵌入式软件。
GUIX的使用非常方便,利用GUIX Studio可以让开发人员在桌面上方便的生成目标板运行的C代码,从而使其变得更加容易。然后,用户可以添加自己的自定义事件处理和绘图功能,以完成其GUI。
使用Azure RTOS GUIX API也很方便。GUIX API既直观又功能强大。API名称是用真实的单词构成的,而不是一些无意义的单词。所有GUIX API都有前导gx_并遵循名词-动词命名约定。此外,整个API都具有功能一致性。例如,所有初始化控件控制块的API均命名为
GUIX默认支持的控件类型如下,当然。GUIX也支持用户自定义各种控件。
Azure RTOS GUIX提供了强大的画布绘图API,允许应用程序实现复杂的图形形状。
所有功能都支持高颜色深度目标设备的抗锯齿,并且所有形状都可以填充轮廓,包括实心和像素图案填充。当以16 bpp和更高的色深运行时,所有绘图均支持alpha。绘图功能包括:
GUIX提供了一组免费的TrueType矢量字体。开发人员可以根据需要添加其他TrueType字体。GUIX字体格式支持8bpp抗锯齿,4bpp抗锯齿和1bpp单色字体。对于大多数资源受限的应用程序,使用GUIX Studio将TrueType字体预先渲染为压缩的位图格式。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=98594 。
GUIX支持的颜色类型也比较丰富,常用的颜色类型,从单色到32bit颜色格式,都支持了:
而触摸方面,电阻屏,电容屏和实体按键全都支持。
GUIX提供了VS2019模拟器版本,位于GUIX Studio安装目录的如下路径(路径里面的6.01是版本号,随着以后的升级,版本号会递增):
使用VS2019打开这些例子,就可以直接编译运行。
注意:GUIX Studio V6.00版本里面案例可以直接打开运行,V6.01版本要注意此贴的问题:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=98923 。
GUIX手册中罗列了一批GUIX支持的硬件平台,实际上,凡是裸机能够驱动的LCD,都可以移植GUIX(满足GUIX最小RAM和最小Flash需求即可)。
使用GUIX Studio,完全可以让美工前期做好各种界面效果,后期工程师添加操作流程和触发事件。的确是做的非常成熟,可以添加设置各种主题,各种界面效果,各种字体展示,各种图片格式设置,使用GUIX Studio,基本可以实现GUI设计一条龙。
GUIX Studio生成的文件
下面这些效果,都是在GUIX上设计完成的:
GUIX提供了应用案例界面效果展示:
智能家居:
医疗类:
家电:
汽车电子:
工业控制:
ThreadX GUIX在STM32上的刷屏流畅度展示,效果顶呱呱:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=98185 。
针对ThreadX GUIX,专门建立了论坛版块:
http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12。
当然,大家也可以上GUIX的官方Github开源地址提交问题:
https://github.com/azure-rtos 。
关于ThreadX GUIX就跟大家介绍这么多,更详细的可以上我们的论坛进一步讨论。