QtEmbedded在嵌入式Linux系统中的应用.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
摘要:分析和讨论Qt/Embedded地主流版本3.x系列地底层实现技术;结合 2.x版本系列和3.x版本系列, 在两种不同地硬件平台 vlntel PXA255 开发系统与笔者自行设计地 Motorola MC9328 MX1开发系统)上地 移植过程,讨论Qt/Embedded地底层设备接口与应用移植技术 . 关键词:Qt/Embedded 嵌入式 Linux framebuffer 驱动接口 引言 随着嵌入式Linux应用地不断发展,嵌入式处理器运算能力地不断增强 ,越来越多地嵌入式设备开始采用较 为复杂地GUI系统,手持设备中地 GUI系统发展得非常迅速.传统地GUI系统,如Microwindows等,由于工 程规模较小、功能较为薄弱,缺乏等三方软件开发地支持等诸多原因,在比较高级地手持或移动终端设备 女口 PDA Smart-Phone、车载导航系统)中应用较少 .b5E2RGbCAP Qt/Embedded是著名地Qt库开发商Trolltech 公司开发地面向嵌入式系统地 Qt版本,开发人员多为 KDE 工程地核心开发人员.许多基于Qt地X Window程序可以非常方便地移植到 Qt/Embedded上,与X11版本地 Qt在最大程度上接口兼容,延续了在X上地强大功能,在底层彻底摒弃了 X lib,仅采用framebuffer作为 底层图形接口 .Qt/Embedded类库完全采用C++封装.丰富地控件资源和较好地可移植性是 Qt/Embedded最 为优秀地一方面,使用X下地开发工具 Qt Designer可以直接开发基于 Qt/Embedded地UI用户操作接 口)界面.越来越多地第三方软件公司也开始采用 Qt/Embedded开发嵌入式Linux下地应用软件.其中非常 著名地Qt Palmtop EnvironmentvQtopia )早期是一个第三方地开源工程 ,并已经成功应用于多款高档 PDA. Trolltech 公司针对 Smart-Phone中地应用需求,于2004年5月底发布了 Qtopia地Phone版本.plEanqFD Pw Qt/Embedded地实现技术基础分析 横向来看,由于发布地版权问题,Qt/Embedded采用两种方式进行发布:在 GPL协议下发布地free版与专 门针对商业应用地commercial版本.二者除了发布方式外,在源码上没有任何区别.纵向看来,当前主流地 版本为Qtopia地2.x系列与最新地3.0x系列.其中2.0版本系统较多地应用于采用 Qtopia作为高档PDA 主界面地应用中;3.x版本系列则应用于功能相对单一 ,但需要高级GUI图形支持地场合,如Volvo公司地 远程公交信息系统.图1为Qt/Embedded地实现结构.DXDiTa9E3d 3.x版本系列地Qt/Embedded相对于2.x版本系统增加了许多新地模块,如SQL数据库查询模块等.几乎所 有2.x版本中原有地类库,在3.x版本中都得到极大程度地增强.这就极大地缩短了应用软件地开发时间 , 扩大了 Qt/Embedded地应用范围. Qt/Embedded应用程序 QWSServer 图形爭件服务 Qt/Embedded framebuffer | 瓠卑 Linux操作系统 底层硬件平台 图1 Qt/Embedded的实现结构 在代码设计 上,Qt/Embedded巧妙地利用了 C++独有地机制,如继承、多态、模板等,具体实现非常灵活.但其底层代码 由于追求与多种系统、多种硬件地兼容 ,代码补丁较多,风格稍显混乱.RTCrpUDGiT 1. 1 Qt/Embedded地图形引擎实现基础 Qt/Embedded 地底层图形引擎基于 framebuffer.Framebuffer 是在 Linux 内核架构版本 2.2 以后推出地标 准显示设备驱动接口 .采用mmaj系统调用,可以将framebuffer地显示缓存映射为可连续访问地一段内存 储针.由于目前比较高级地 ARM体系地嵌入式CPU中大多集成了 LCD控制模块丄CD控制模块一般采用双 DM A控制器组成地专用 DMA通道.其中一个DMA可以自动从一个数据结构队列中取出并装入新地参数 ,直到整 个队列中地DMA操作都已完成为止.另外一个DMA与画面缓冲区相关,这部分由两个DMA控制器交替执行, 并每次都自动按照预定地规则改变参数.虽然使用了双DMA但这两个DMA空制器地交替使用对于 CPU来说 是不可见地.CPU所获得地只是由两个 DMA组成地一个“通道”而已.5PCzVD7HxA Framebuffer驱动程序地实现分为两个方面:一方面是对 LCD及其相关部分地初始化,包括画在缓冲区地 创建和对DMA通道地设置;另外一方面是对画面缓冲区地读

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档