来源:互联网
时间:2014-07-16
嵌入式系统开发的性质在快速变化。该术语起源于此类计算机系统还是以嵌入方式安装于用户设备的年代。那时少有用户界面,甚至根本没有用户界面以反映计算机系统的存在。能反映其存在的,多也就是命令行显示和一组实物按钮而已。然而,随着系统越来越精密,这种简陋的用户界面表现出越来越大的局限性,使得OEM更加趋向于部署更多的面向图形的、基于屏幕的用户界面,能通过一系列菜单或页面更多地展现系统功能。
如今,用户界面已不再仅仅是系统不可分割的一部分,而且还是系统的主要卖点之一。机动车辆的电器和资讯娱乐装置不断朝着大型触摸型显示器发展,强调的不仅仅是图形能力,而且还有底层软件和操作系统的响应能力。因此,对于富媒体用户界面GUI而言,单纯的追求功能和效用是远远不够的。终用户还要求界面具有很强的吸引力。要做到这点,需要增加高性能的动画技术,形成活动背景,并在视觉模式和菜单之间形成便捷的切换。
软件复杂度越来越高
之所以趋向于视觉吸引,一部分原因是由于高性能32位处理器越来越多,造价也越来越低,而这类处理器又往往具有多核内置式图形处理器(GPU)。这些装置可用来减少对CPU主线程资源的占用,使其可以更好地完成对实时事件和数据的处理。处理元素的增加加大了开发流程的复杂性,也使得多处理器已经成为当代开发项目的模式。
当然,软件复杂度越来越高,并不仅仅是因为多个处理器的存在造成的。以往使用文本型菜单树状结构的用户界面,较容易建立一套用户界面对话。由于对话采用的是命令行显示的模式化方式展现的,其信息可按照结构化方式展示和检索。而当今的图形密集型用户界面则需要采取更具动态性的方式。这种方式通常采用一种事件循环,并要求具备多线程条件来保证不会影响对用户界面的处理。
用户实际上可以在任何时间,通过多种渠道完成更新。例如,触摸式系统可能不只是接受虚拟按钮的按压和滚屏移动,而且还需要识别多种不同的手势。而这些手势因当时正在运行的应用的类型不同,意义也会各有差别。这些手势可能是由在主处理器上运行的软件负责分析,也可能是由专用触摸界面装置配套的软件负责分析。无论其来源如何,手势及其它输入都需要立即处理,并传送到正确的流程上。
从零开始建立一套工作系统,需要大量的元件。元件类型多种多样,从使处理器在接入的显示器上显示像素的核心图形驱动器,到图形、音像库,直至界面设计工具等。即使对编程技术所知甚少的用户界面设计专家,也能设计出魅力四射的界面。对于桌面编程人员而言,上述要求已经够难实现了。
而更大的难题在于,还需要具有交叉编译功能的有效工作流程,才能将工作二进制文件传送给嵌入式目标平台。每一套开发、编译、链接、部署和测试环节都要消耗大量的时间。
对于当前处于开发期的众多嵌入式系统而言,连通性也是一项必须考虑的问题。嵌入式系统不仅要求能够在互联网上传输数据,而且还要能存储和操纵需由服务器在云端同步的结构化数据。SQL等数据库查询系统及XQuery和JSON等配套网络技术,为在线数据源提供了必要的连接。但这些也都是嵌入式系统开发商必须置入其目标平台之中的附加模块。
而所有嵌入式项目都禁止通过低级组件执行上述功能。因此,合理选择含有用户界面创建、装置部署和连接所需高级框架和工具的软件堆栈,就成了新建嵌入式项目的其中一项重大决策。然后,再以软件堆栈的具体要求为条件选择硬件。
采用Linux框架建设的软件环境已成为嵌入式系统的有效平台。其中之一是安卓系统。安卓原为谷歌专为移动电话和平板电脑开发的系统,但现在越来越多地应用于工业系统及Yocto等嵌入式Linux分布系统。这些平台可随时支持多数移动和桌面游戏使用的OpenGL等三维图形界面,同时还有HTTP和TCP/IP等网络连接系统。但这些系统仍然需要组装并提供给开发商使用。
利用有效的IDE优化工作流程
随着集成开发环境(IDE)的不断发展,现在已经兼顾到越来越复杂的平台支持问题,使应用开发商看不到其中的很多复杂情况。桌面和移动环境已经引入了众多技术,不断降低高度动画性的用户界面的开发难度。只需合理的技能和经验,就可将其应用于嵌入式环境中。
这类IDE的其中一项重要因素,是能同时支持桌面和嵌入式两种环境。这样一来,很多的应用逻辑和用户界面都可以直接在桌面环境下就地开发,然后移植到嵌入式对象上进行性能和终测试。随着软件工程越来越多地倾向于快捷型开发过程,嵌入式系统开发也越来越需要一种能支持快速成型的工作流程。
通过桌面设备在对象上模拟界面的虚拟帧缓冲等技术,无须反复部署和在实际对象上进行测试,即可确保图形和动画技术在目标平台上被有效使用。基于桌面的用户界面开发,能实现快速成型,支持潜在客户和用户的验收测试,确保终产品能取得市场成功。
跨平台开发的另一个关键,是具有统一的平台API,该API由开放源Qt类库提供。经过十多年的发展,Qt已经建立了完善成熟的跨平台代码类库,并针对桌面、移动和嵌入式对象项目进行优化。多年以来,Qt不仅在移动电话中得到广泛应用,而且还不断应用于医疗设备、机顶盒及汽车资讯娱乐和仪表盘系统。
Qt Creator
Qt Creator是支持媒体密集型嵌入式系统开发的IDE之一。它是不久前推出的Qt Enterprise Embedded (Qt企业嵌入式)环境的其中一部分。Qt Creator可实现开发商桌面本地执行与开发对象项目之间的轻松切换,缩短了编辑-编译-调试周期;同时设有内置的装置调试,确保开发商能在对象项目上使用与本地环境内部相同的调试功能。
Qt Creator顶面为建立图形密集型嵌入式应用系统所需的整套框架,可选用的技术从HTML5等网络技术,直至C++等高性能原生语言。
HTML5具有广为用户界面和富媒体开发商所用的优势。JavaScript语言建立在广泛应用回调功能的事件驱动界面理念上,对于此类开发项目而言,要比C++更加直观。不过,HTML5往往会耗用大量资源,而且不能保证每次都能在用户界面上实现流动性能。
Qt Enterprise Embedded包括Qt Quick技术。该技术采用由下至上结构,能形成高性能的流畅用户界面。使用原生C++类库和OpenGL ES,通过GPU和CPU上的一个独立线程来完成图形渲染。对于开发者而言,Qt Quick提供了一种高级的声明性语言QML,它能缩短开发周期,同时方便与用户界面设计师配合工作。
Qt Enterprise Embedded的其它扩展还有广泛的SQL支持功能。可通过XQuery和JSON等标准的面向Web型接口,同时接入本地数据库和基于网络的数据库。
由于该富媒体环境可选用很多种技术,Qt Creator提供的框架可建立自定义的本地型编辑器,使企业能够创建高效的开发系统,用于支持其自有的优化技术选择,确保顺利迁移到高级嵌入式应用开发项目中。
随着嵌入式系统不断引入了更加先进的用户界面,开发技术也随之不断变化。先进的IDE支持能确保这一演变不仅便于管理,而且其创建的应用也能针对目标系统不断优化。