3.3 Qt/Embedded和qtopia的移植
移植过程中我们采取了宿主机和目标板的开发模式。宿主机是一台运行Linux 的PC 机,目标板即hybus开发板。先在宿主机上调试通过后,再移植到目标板上。
3.3.1 宿主机上的移植
前面介绍过Qt/Embedded直接写入帧缓冲,在宿主机上则是通过qvfb(vitural framebuffer)来模拟帧缓冲。qvfb是X窗口用来运行和测试Qtopia应用程序的系统程序,允许我们在桌面及其上开发Qt嵌入式程序,而不需要在命令台和X11之间来回切换。qvfb使用了共享存储区域(虚拟的帧缓冲)来模拟帧缓冲并且在一个窗口中(qvfb)模拟一个应用来显示帧缓冲,显示的区域被周期性的改变和更新。通过指定显示设备的宽度和颜色深度,虚拟出来的缓冲帧和物理的显示设备在每个像素上保持一致。这样我们在每次调试应用时不需要总是刷新嵌入式设备的FLASH存储空间,从而加速了应用的编译、连接和运行周期。
因此在最初编译配置嵌入式Linux内核时必须使其支持帧缓冲。宿主机上的移植需要的工具及环境变量见表3。其中环境变量可以直接用export 来声明,也可以在~/.bash_profile脚本文件中进行设置。
表3 宿主机移植所需工具及环境变量声明
特别指出,在配置qt-2.3.7时,./configure -qconfig -qvfb -depths 4,8,16,32 就是指定Qt嵌入式开发包生成虚拟缓冲帧工具qvfb,并支持4,8,16,32位的显示颜色深度。运行Qt的虚拟缓冲帧工具的方法是:在Linux图形模式下运行命令:./qvfb &。如果要把Qt嵌入式应用程序的显示结果输出到虚拟缓冲帧时,运行时需在程序名后加上-qws选项。如./canvas-qws。
Qtopia即QPE(Qt Palmtop Environment )是由著名的Trolltech公司基于Qt的嵌入式版本Qt/Embedded库的基础上,专门针对PDA、SmartPhone这类运行嵌入式Linux的移动计算设备和手持设备所开发的开放源码的一套应用程序包和开发库。Qtopia是基于qt/embedded程序库编写的应用程序环境,(Qtopia是Qt在Linux/embedded Linux版本里的一个application实现。)界面优美。主要应用于高端手机,pda等嵌入式系统,具有广阔的发展前景。
|