基于ARM和嵌入式Linux的图形编程:NanoGTK(附CD-ROM光盘1张)
分類: 图书,计算机与互联网,操作系统,Linux,Linux 编程开发,
品牌: 赵克坤
基本信息·出版社:清华大学出版社
·页码:241 页
·出版日期:2009年09月
·ISBN:9787302203124
·条形码:9787302203124
·包装版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
产品信息有问题吗?请帮我们更新产品信息。
内容简介《基于ARM和嵌入式Linux的图形编程:NanoGTK》讨论了基于ARM和嵌入式Linux平台的图形软件开发技术——NanoGTK。全书共分13章,阐述了中文Nano-X Window和GTK+在嵌入式中的原理和应用。介绍了ARM、嵌入式Linux和相关的图形引擎;GCC编译器的使用方法和交叉编译环境的安装;Nano-X的特性和工作机制。给出了实际开发中一些系统定制Nano-X的实现方法;解析了GTK+在实际开发中的常用方法和控件并介绍了很多实例程序。《基于ARM和嵌入式Linux的图形编程:NanoGTK》第12章分析了实际的嵌入式工程中GTK+的5个例子程序,第13章介绍了嵌入式Linux的下载和调试方法。附录提供了Nano-X的API、GTK+函数和信号的细节。
《基于ARM和嵌入式Linux的图形编程:NanoGTK》适用于嵌入式Linux平台项目开发人员,也可以作为高校计算机相关专业师生的参考读物。
编辑推荐《基于ARM和嵌入式Linux的图形编程:NanoGTK》是由清华大学出版社出版的。
目录
第1章 ARM和嵌入式Linux概述 1
1.1 ARM介绍 1
1.1.1 关于ARM 1
1.1.2 ARM里程碑浏览 2
1.1.3 ARM现状 3
1.2 嵌入式Linux介绍 3
1.2.1 Linux的发展历程 4
1.2.2 嵌入式Linux现状 4
1.2.3 嵌入式Linux的新需求 5
第2章 嵌入式Linux图形用户界面 6
2.1 MiniGUI 6
2.2 Qt/Qt嵌入式 6
2.3 TinyX 7
2.4 Nano-XWindow 7
2.5 NanoGTK 8
第3章 GCC简介 10
3.1 编译 10
3.2 gcc的基本用法 11
3.2.1 提示undefinedreferenceto'xxxxx' 11
3.2.2 -l参数和-L参数 11
3.2.3 -include和-I参数 11
3.2.4 -O参数 12
3.2.5 -shared参数 12
3.3 交叉编译 12
第4章 交叉编译环境 13
4.1 下载交叉编译环境 13
4.2 安装交叉编译环境 14
4.2.1 编译工具的安装 14
4.2.2 Linux内核的安装 14
4.2.3 NanoGTK的安装 16
4.3 ARM版本文件格式 16
4.4 运行NanoGTK 18
4.5 嵌入式编程的注意事项 18
4.5.1 良好的习惯 18
4.5.2 准确性 19
4.5.3 效率 19
4.5.4 通用性 20
第5章 初识Nano-X 22
5.1 Nano-XFAQ 22
5.1.1 Microwindows和Nano-X
Window有什么不同? 22
5.1.2 什么是Nano-XWindow
系统? 22
5.1.3 Nano-X运行在什么上面? 22
5.1.4 支持哪些CPU? 23
5.1.5 Nano-X有多大? 23
5.1.6 Nano-X的结构是怎样的?
支持哪些API? 23
5.1.7 Nano-X和NanoGUI的区别 23
5.1.8 Win32和Nano-XAPI的区别 24
5.1.9 什么是Nano-XAPI? 24
5.1.1 0什么是MicrowindowsAPI? 24
5.1.1 1Nano-X的图形特征有哪些? 24
5.1.1 2Nano-XWindow系统遵循
什么许可证? 24
5.1.1 3最新的源代码在哪里? 25
5.1.1 4有屏幕截图和/或演示例
子吗? 25
5.1.1 5有邮箱列表吗? 25
5.1.1 6我能搜索邮箱列表档案吗? 25
5.1.1 7安装不了FrameBuffer,到
哪里寻求帮助? 25
5.1.1 8Nano-X服务器给出一个错误
"Cannotbindtonamedsocket".
为什么? 25
5.1.1 9配置文件中SCANKBD和
TTYKBD的区别 26
5.1.2 0如何安装鼠标或触摸屏? 26
5.1.2 1配置文件中GPMMOUSE和
SERMOUSE的区别 26
5.1.2 2能做些什么去帮助别人? 26
5.2 Nano-X的截图 26
第6章 Nano-X的实现机制 28
6.1 Nano-X的层次结构 28
6.2 Nano-X的消息队列 29
第7章 Nano-X的代码结构 31
7.1 目录和文件 31
7.2 各层的函数、变量命名规则 33
7.3 底层驱动 34
7.3.1 设备结构的定义 35
7.3.2 显示驱动/帧缓冲 36
7.3.3 内核的帧缓冲驱动 41
7.3.4 键盘驱动 44
7.3.5 鼠标及触摸屏驱动 47
7.4 与设备无关的图形引擎 50
7.4.1 画点、线 50
7.4.2 区域裁剪 55
7.4.3 显示文字 57
7.5 上层应用接口 58
第8章 Nano-X深入解析 62
8.1 Config文件 62
8.2 入口函数 63
8.2.1 服务器端主函数 63
8.2.2 客户端主函数 65
8.3 API函数 67
8.4 消息循环 75
8.4.1 服务器与客户端的通信协议 75
8.4.2 相关数据结构定义 75
8.4.3 按键事件处理 77
8.4.4 鼠标事件处理 79
8.4.5 小结 80
第9章 定制Nano-X 82
9.1 开机显示公司Logo 82
9.1.1 如何显示出来 82
9.1.2 制作Logo文件 83
9.2 中文的实现 85
9.2.1 基本方法 85
9.2.2 三级字库的实现 86
9.2.3 Unicode简介 91
9.2.4 BOM 92
9.2.5 UTF编码转换 92
9.3 输入法 92
9.3.1 输入法管理器 93
9.3.2 输入法 94
9.3.3 编译输入法 96
9.4 触摸屏和手写输入 97
9.4.1 服务器端的处理 97
9.4.2 客户端的处理 103
9.4.3 校正触摸屏 107
第10章 GTK+入门 109
10.1 GTK+简介 109
10.2 Nano-Xwindow与GTK+ 111
10.3 GTK+FAQ 111
10.3.1 概况 111
10.3.2 GTK+如何得到、配置、安
装和查错 114
10.3.3 GTK+的开发 116
10.3.4 用GTK+开发:开始 119
10.3.5 用GTK+开发:常规问题 121
10.3.6 用GTK+开发:控件专题 139
10.3.7 关于GDK 149
10.3.8 关于GLib 151
10.4 GTK+的数据类型 158
10.5 最简单的GTK+程序 160
10.6 如何编译 162
10.7 关于信号处理 164
10.8 hello world程序 165
第11章 GTK+的控件 168
11.1 控件概述 168
11.1.1 创建控件的步骤 168
11.1.2 类型转换 169
11.1.3 无窗口的控件 169
11.2 布局控件 170
11.3 按钮 172
11.4 文本输入框 175
11.5 标签 179
11.6 超时,输入输出,空闲函数 183
11.6.1 超时 183
11.6.2 监控输入/输出 183
11.6.3 空闲函数 184
11.7 rc文件 184
11.7.1 rc文件的函数 184
11.7.2 rc文件的格式 185
11.7.3 rc文件示例 186
第12章 嵌入式工程中的GTK+
实例 189
12.1 GTK+的对话框 189
12.2 GTK+的表布局窗口 192
12.3 GTK+的报表 194
12.4 GTK+显示图片 197
12.5 GTK+的定时器和线程 200
第13章 下载与调试方法 205
13.1 下载方法 205
13.2 调试方法 205
13.2.1 串口调试 205
13.2.2 其他调试方法介绍 206
附录A Nano-X公共图形API 209
附录BGTK+-1.2常用函数 219
附录C GTK+-1.2信号 224
结束语 241
参考文献 242
……[看更多目录]
序言一直想写一些关于NanoGTK的东西和同行交流,现在终于付诸实施了!
NanoGTK包含Nano-X Window和GTK+两部分内容,Nano-X Window即Microwindows,是为嵌入式设备定制的一个轻量级的图形引擎,GTK+是一套创建图形用户界面的开发工具包。NanoGTK是Microwindows和GTK+在嵌入式应用的联合体的简称,书中是分开来讲述这两部分的,这是因为它们可以各自比较独立地开发和使用。而由于Microwindows跟微软的注册商标Windows冲突,2005年改名为Nano-X Window,因此书中大量提到的是Nano-X Window,而不是Microwindows。
Nano-X Window是一个开放源代码的嵌入式GUI软件,目的是把现代图形视窗环境引入到运行Linux的小型设备和平台上,写图形用户界面需要工具包,GTK+是一套工具包,它可以创建图形用户界面。选择Nano-X Window和GTK+主要有以下几个原因:
Linux、Nano-X Window和GTK+用于商业用途时不需要支付任何版税;
源代码公开、简练灵活,移植方便;
Nano-X Window可以支持从单色到32位色的显示屏;
可以支持目前市场上大多数的32位嵌入式CPU;
可以快速开发出有不同功能和风格的产品。
嵌入式技术随着市场竞争的加剧而日趋成熟,当前32位嵌入式设备的可靠性跟以前相比已经大大提高,功能也越来越完善,而芯片价格却越来越低,因此现在的许多控制系统和电子消费品等都会优先考虑32位嵌入式方案,企业的很多开发也转向32位嵌入式产品,作者隐隐感觉到,这将是一个巨大的市场。基于图形的嵌入式开发,速度将大大提高,为公司产品推向市场节约了时间和成本,为赢得市场提供了保障。
由于Nano-X Window源自国外,一开始没有实现对中文的支持,当前市场上应用的Nano-X Window大多不是中文版,因此使它在国内的推广受到抑制。幸运的是,Nano-X Window是支持Unicode的,增加中文的支持并不需要费很大力气,本书第9章讲述了中文的实现方法。
作者通过讲述对基于ARM和嵌入式Linux 的中文Nano-X和GTK+开发的切身实践,引导您不仅仅是熟悉NanoGTK,而且会修改它来适应自己的产品。如果您正在从事或即将从事嵌入式软件开发,并且有Linux的基础知识,熟悉C语言,那么本书将非常适合您阅读。如果您把这本书作为开发时的参考资料,那我将感到非常荣幸,因为Nano-X和GTK+得到了您的支持和推广,这也是我写这本书的初衷。
文摘插图:
第2章 嵌入式Linux图形用户界面
图形用户界面(GuI)是迄今为止计算机系统中最为成熟的人机交互技术。从用户的观点来看,图形用户界面是系统的一个至关重要的方面:用户通过GUI与系统进行交互,所以GUI应该易于使用并且非常可靠。此外,它不能占用太多的内存,以便在内存受限的微型嵌入式设备上无缝执行,所以,它应该是轻量级的,并且能够快速装入。另一个要考虑的重要方面涉及许可证(License)问题,一些GUI分发版具有允许免费使用的许可证,甚至在一些商业产品中也是如此,另一些许可证则要求在将GUI合并入项目中时支付版税。本章重点介绍运行在嵌入式Linux上的图形用户界面。
2.1 MiniGUI
MiniGUl是由北京飞漫软件技术有限公司主持的一个自由软件项目(遵循GPL条款),其目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。
MiniGUl为应用程序定义了一组轻量级的窗口和图形设备接口。利用这些接口,每个应用程序可以建立多个窗口,而且可以在这些窗口中绘制图形。用户也可以利用MiniGUI建立菜单、按钮、列表框等常见的GUI元素。