3、比较MicroWindows、Qt/Embedded和MiniGUI的功能特性。(P210) 答:见表8-1。[略]
4、Qt/Embedded的图形引擎实现基础是什么,其实现结构是怎样的?(P214)
答:Qt/Embedded的底层图形引擎是基于FrameBuffer之上的。FrameBuffer是在Linux内核架构版本2.2以后推出的标准显示设备驱动接口。采用mmap系统调用,可以将FrameBuffer的显示缓存映射为可以连续访问的一段内存指针。
FrameBuffer驱动程序的实现分为两个方面:一方面是对LCD以及其相关部件的初始化,包括画面缓冲区的创建和对DMA通道的设置;另一方面是对画面缓冲区的读写,具体的代码为read、write、lseek等系统调用接口函数。至于将画面缓冲区的内容输入到LCD显示屏上,则是由硬件自动完成的,对于软件来说是透明的。
5、简述Qt/Embedded窗口系统的工作原理。(P215)
答:Qt/Embedded的窗口系统采用一种客户/服务器体系结构。一个典型的嵌入式Qt窗口系统一般包括:一个服务器进程、一个或多个客户进程。服务器进程负责为客户和其本身分配显示区域、生成鼠标和键盘事件,它通常包含那些启动客户的用户界面,例如应用程序发射台。而客户进程则通过与服务器通信来申请显示区域,接收鼠标
和键盘事件。客户可以直接访问所分配的显示区域,以便为用户提供GUI服务。
服务器和客户通过共享内存的方式来传递所有分配显示区域上的信息,如果需要的话还可以维护一个软光标。
6、Qt/Embedded中信号和槽的概念分别是什么?(P216)
答:信号(signal)和槽(slot)是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。
当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要做的全部事情,对象并不知道另一端是谁在接收这个信号。这是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。
槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。
7、举例说明信号和槽是如何连接的。(P217~218)
答:信号与槽的连接模型如下图所示:
Object1signal1signal2connect(Object1, signal1, Object2, slot1)Connect(Object1, signal1, Object2, slot2)Object2signal1slot1slot2Object3signal1slot1connect(Object1, signal2, Object4, slot1)Object4slot1slot2slot3connect(Object3, signal1, Object4, slot3) 通过调用QObject对象的connect函数来将某个对象的信号与另外一个对象的槽函数相关联,这样当发射者发射信号时,接收者的槽函数将被调用。这个函数的作用就是将发射者sender对象中的信号signal与接收者receiver中的member槽函数联系起来。
8、自己动手建立QT/E开发环境(2.x或3.x系列)。(P220~222) 答:[略]
9、简述Qt/Embedded应用系统的基本开发流程。(P223)
答:基于Qt/Embedded开发一个嵌入式应用的一般过程如下图所示。
选定嵌入式硬件平台在工作的机器上安装Qt/Embedded工具开发包根据目标硬件平台,交叉编译Qt/Embedded的库在工作的机器上进行应用程序的编码、调试根据目标硬件平台,交叉编译嵌入式应用在嵌入式硬件设备上调试运行应用有问题调试有无问题无发布嵌入式应用
从图中可以看到,应用软件开发工作基本上是在工作站或是PC机上完成的。在工作站或PC机上调试运行嵌入式应用,并将输出结果显示在一个仿真小型设备显示终端的模拟器上。在开发的后期,要根据选择的嵌入式硬件平台,将嵌入式应用编译链接成适合在目标平台上运行的二进制目标代码。另外由于应用系统使用到了Qt/Embedded的库,所以还要对Qt/Embedded库的源代码进行交叉编译,然后链接成为适合在目标平台上使用的二进制目标代码库。当一个Qt/Embedded应用被下载到目标平台上,并能够可靠运行时,一个开发过程才宣告结束。
10、试说明在Qt/Embedded中鼠标类设备和触摸屏设备的异同点。(P226)
答:Qt/Embedded中没有特别针对触摸屏的设备接口,不过触摸
屏和鼠标类设备在功能上基本是一致的,因此,在Qt库中一般把触摸屏模拟成鼠标设备来实现对触摸屏设备的操作。由于触摸屏在实现原理上存在着A/D量化误差的问题,因此所有的触摸屏接口实现类需要从特殊的类QCalibratedMouseHandler继承,并获得校正功能。另外,触摸屏和鼠标底层接口的不一样,会造成对上层接口的不一致。例如,从鼠标驱动接口中几乎不会得到绝对位置信息,一般只会得到相对移动量。鼠标接口需要考虑移动加速度,而触摸屏接口则几乎是清一色的绝对位置信息和压力信息。针对此类差别,Qt/Embedded将同一类设备的接口部分也给予区别和抽象。
第9章 基于OMAP5912的开发应用实例 1、如何构建基于OMAP5912的嵌入式开发平台。 答:[略]
2、嵌入式Linux系统的启动流程分哪几个层次?(P244)
答:一般来说,一个嵌入式Linux系统的启动可以分为四个层次: (1)引导加载程序:Bootloader和包括固化在固件中的boot代码(可选项)两大部分。
(2)Linux内核:针对特定的嵌入式系统专门定制的Linux内核以及内核的启动参数。特定于OMAP平台,选用麦克泰公司的Montavista Linux。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库嵌入式系统设计大学教程 - 习题与解答(10)在线全文阅读。
相关推荐: