欢迎来到天天文库
浏览记录
ID:40229174
大小:532.50 KB
页数:32页
时间:2019-07-27
《嵌入式系统 第9章 嵌入式GUI》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、提纲1.嵌入式GUI简介2.XWindows3.Tiny-X体系结构4.Tiny-X应用程序编写实验一:用Glade编写一个简单的应用程序实验二:Tiny-X下的Key/Led应用实验三:GT/E移植11.嵌入式GUI简介嵌入式GUI设计一般来说包括以下3个方面:硬件设计,通过LCD控制器把LCD显示器和开发系统连接起来。驱动程序设计,为输出输入设备如LCD设计驱动程序,使硬件能驱动起来用户界面程序设计,使用嵌入式系统提供的函数库进行图形化程序设计2目前在嵌入式系统比较流行的图形用户界面GUI:Qt/EmbeddedMicroWindo
2、wsOpenGUIMiniGUITiny-X32.XWindows架构采用客户端/服务器的设计概念XWindows由3部分组成:客户端、服务器和X协议XWindows是事件驱动,大部分时间处于一种等待事件发生的状态4XWindows的基本的API函数库:53.Tiny-X系统框架TinyX是标准X-windows系统的简化版,设计目标是为了在小容量内存的环境下运行,非常适合用作嵌入式linux的GUI系统采用标准的Client/Server体系结构在嵌入式系统中使用Tiny-X图形用户界面开发产品,上层的应用程序的编写很方便6Tiny-
3、X系统架构:7FrameBuffer――帧缓冲器TinyX(Xfbdev)――TinyX为Xwindows的微缩版,有经过精简的Xlib类库Glib――包括一些基础数据类型和典型的C程序需要的功能GDK――是建立在Xlib上的针对图形图像类封装的底层图形库Tiny-X结构说明(1)8Tiny-X结构说明(2)GTK――是建立在Xlib和GDK上的高级面向对象的类库窗口管理器(QVWM):一种类似于window95风格的窗口管理器Glade:GTK的集成开发环境9Tiny-X库的调用关系:104.Tiny-X应用程序开发想在Xscale平
4、台上编写基于Tiny-X的图形用户程序需要了解GTK+GTK+依赖于Glib并建立在GDK(GIMPDrawingKit)的上层,基本上是将Xlib功能包装起来,它是对底层的XWindows系统库Xlib的简化114.1GTK+的基本概念信号、事件和对象构件容器消息及回调函数的概念12GTK+编程应用实例初始化GTK+:写GTK+程序需要调用gtk_init函数对Gtk+库进行初始化构件的使用,一般进行如下操作步骤:包含所调用构件的头文件声明构件构件指针的初始化安排构件的位置与层次关系编写事件处理函数GTK+事件循环134.2图形界面生
5、成器GladeGlade由主窗口、构件箱窗口、属性编辑器窗口、构件树窗口和剪贴板窗口组成Glade是传统界面设计工具GTK/GDK的扩展,能满足基于GTK+库的图形用户界面可视化开发的基本需求14Glade帮助开发者生成界面代码,基本过程如下:让Glade设计出界面元素,设置界面元素属性,为构件的信号设置回调函数将其存为XML格式,观察并修改不符合要求的部分编写应用其它部分代码,并在应用中载入Glade文件,编译C代码生成执行文件15实验-:用Glade编写一个简单的GUI应用程序实验目的熟悉GTK+编程熟悉Glade的使用学会如何交叉
6、编译一个GUI程序161.在redhat9.0下安装Glade,选择系统/添加或删除软件包选择管理工具中的”细节”,添加Glade172.通过Glade创建GUI程序创建新的Project,并保存为guitest创建一个按钮,选择option配置183.设置参数生成ARM平台代码在src目录下生成了ARM平台的目标程序guitest,下载到目标板,并修改其属性为可执行属性#exportCC=arm-linux-gcc#./configure--host=arm--build=i686--target=arm--with-gtk-exe
7、c-prefix=/usr/local/XSBase-arm-linux-R1.1#make#cdsrc19选择编译,生成代码程序在主机平台上运行#/autogen.sh#make#cd/src#/guitest20实验二:Tiny-X下的KeyPad/LED控制实验实验目的复习设备驱动的编写进一步熟悉Glade的使用通过GUI界面的控件事件来控制系统底层的硬件在这个实验中分别使用Glade的8个buttuon控件来控制8个LED灯211.建一个Glade图形用户界面工程2.建立相应的GUI界面结构223.增加Button的事件处理23
8、4.打开设备文件,在main.c中增如下代码,同时增加opendev.c以及opendev.h文件#include"interface.h"#include"support.h"#include"opend
此文档下载收益归作者所有