ebook img

ARM 嵌入式Linux 系统开发从入门到精通 PDF

317 Pages·2010·3.44 MB·Chinese
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview ARM 嵌入式Linux 系统开发从入门到精通

ARM 嵌入式 Linux 系统开发从入门到精通 内容简介: 这是一本以实践为宗旨的嵌入式ARM Linux 开发书籍,它不同于一般的教材重点讲述 理论而缺乏实践的部分,也不同于许多类似书籍只针对特定开发板讲述,这对于没有开发板 的读者来说很难掌握书中的内容。ARM是当今最主流的嵌入式微处理器,本书以应用最广 泛的新一代ARM9处理器为讲述对象。此外,Linux是一个成熟而稳定的开放源代码操作系 统,将Linux植入嵌入式设备具有众多的优点。本书分为三部分:第一部分讲述ARM Linux 系统移植,其中包括嵌入式系统开发入门,交叉编译器的构建,BootLoader的移植与实现以 及Linux 2.6内核的编译与下载;第二部分讲述ARM Linux的驱动程序开发,其中包括最常 见的字符设备驱动的分析,块设备驱动的分析以及网络设备驱动的分析。其中每一种类型的 驱动都是利用典型的实例来讲述,使读者充分了解驱动程序的实现思想;第三部分讲述 Qt GUI开发,其中包括Qt的具体安装,Qt的核心技术,以及最新的Qtopia Core 开发环境, 最后利用实例来讲述Qtopia Core 开发过程。总之,本书包括了嵌入式Linux系统移植,底 层驱动实例的讲解以及上层应用的实例讲述,针对那些想从事嵌入式开发或已经从事嵌入式 开发的读者来说无疑是一本难得的参考书籍。 前言: 嵌入式系统由于芯片、软件、网络和传感器等技术的不断发展,正在成为未来社会的“数 字基因”。如今,人类已经进入了后 PC 时代,嵌入式技术已被广泛应用于科学研究、工程 设计、军事技术以及文艺、商业等方方面面,成为后PC时代的主力军。与此同时,嵌入式 Linux操作系统也在嵌入式领域蓬勃发展,它不仅继承了Linux源码开放,内核稳定性强, 软件丰富等特点,而且还支持几乎所有的主流处理器和硬件平台。嵌入式硬件系统和Linux 系统的有机结合,成为后PC时代计算机最普遍的应用形式。嵌入式Linux技术在中国有巨 大的发展潜力和市场需求。有数据显示,未来两年里,在计算机、消费电子、通信、汽车电 子、工业控制和军事国防这六大主要应用领域,嵌入式Linux产品将达到 80亿美元的市场 规模,可见这个行业的前景是非常乐观的。当然,Linux嵌入式操作系统本身也有一定的局 限性,就是开发难度过高,对于企业需要很高的技术实力。这就要求Linux系统厂商们不光 要利用Linux,更要掌握Linux。此外,社会需要更多人加入到学习和使用Linux行业中来。 本书编写的目的: 嵌入式Linux属于一个交叉学科,并且也是一个高起点的学科,它涵盖了微电子技术、 电子信息技术、计算机软件和硬件等多项技术领域的应用。另外学习嵌入式Linux最好具备 相应的嵌入式开发板和软件,还需要有经验的人进行指导开发,目前国内大部分高校都很难 达到这种要求,这也造成了目前国内嵌入式Linux开发人才极其缺乏的局面。 很多希望学习嵌入式Linux的人已经具备了一定的硬件知识,并且对操作系统原理,数 据结构等都有相当的了解,但在Linux技术方面又是零起点。目前嵌入式Linux的书籍也是 非常之多,但大部分都是要求读者有一定的Linux使用基础,对于初学者来说真的非常困难。 写这本书的主要目的就是对那些没有Linux开发经验的初学者有个很好的指导参考作用,从 而让他们少走弯路。 其次,笔者希望通过写书来总结这几年在工作中的项目经验,与更多的读者分享自己的 技术,也是对自己的所做项目的一个巩固;通过写这本书,让笔者更加清楚了实践与理论之 间的联系,从而将自己的亲身经验和教训寄托在书中的每个章节。 本书的特点: 首先,本书涵盖了嵌入式Linux系统中最重要的三个部分:ARM Linux系统移植,ARM Linux驱动程序开发以及Qt GUI开发,这在同类书籍中比较少见。 其次,本书的讲述不依赖于具体某个厂家开发板,这样读者可以使用任意一款类似的开 发板就可以进行实践学习,同时对于没有开发板的读者也可以学到更多的知识。 另外,本书提供了书中出现的所有实例的源代码,便于读者参考使用,更重要的是读者 不用手动输入这些代码,从而节省时间。 本书的主要组成: 本书分为三个部分,共12章节,每一部分由4章内容组成。 第一部分讲述ARM Linux 系统移植,首先第1章讲述嵌入式系统开发入门,主要针对 初学者,讲述嵌入式系统的概要,ARM 处理器,ADS 工具,Linux 开发环境,以及 Linux 内核源码等。接着第2章讲述交叉编译工具链的构建,主要讲述交叉工具链的作用,使用分 步法构建交叉工具链和使用 Crosstool 工具构建交叉工具链。第 3 章讲述嵌入式系统的 BootLoader,主要讲述嵌入式BootLoader的作用,基于S3C2410开发板的U-Boot分析与移 植以及自己设计 BootLoader的方法。最后第 4 章讲述嵌入式 Linux 内核移植,主要讲述移 植的基本概念,内核配置、内核编译、内核下载以及构建根文件系统。 第二部分讲述ARM Linux驱动程序开发,首先第5章讲述ARM Linux驱动程序开发入 门,主要讲述嵌入式Linux驱动介绍,简单的内核模块程序分析,以及Linux驱动开发的基 本要点。接着第6章讲述字符设备驱动程序,主要讲述字符设备驱动相关的重要数据结构, 字符设备驱动开发实例——触摸屏设备驱动开发。第7章讲述块设备驱动程序,主要讲述块 设备相关的数据结构,块设备驱动开发实例——MMC/SD 设备驱动开发。最后第 8 章讲述 网络设备驱动程序,主要讲述网络设备驱动相关的重要数据结构,网络设备驱动开发实例— —CS8900A网卡驱动开发。 第三部分讲述 Qt GUI 开发,首先第 9 章介绍了Qt的概要知识,包括 Linux桌面 GUI 系统,Qt/X11,Qtopia Core等,使读者对Qt及其在Linux GUI系统中的作用有个大概了解。 紧接着第10章讲述了Qt/X11的安装以及非常详细的应用实例,使读者可以轻松的编写基本 的Qt程序。第11章深入讨论了一些Qt的核心技术,重点是以Qt对象模型为基础的信号和 槽等机制,我们通过剖析Qt的源代码来深入的学习Qt的这些核心技术,同时也为读者今后 对Qt源代码的自行研习打下基础。最后第12章重点讲述Qtopia Core和Qt/X11的一些不同 之处,包括轻量级的窗口系统,QCOP 进程间通信机制及调试工具 qvfb 等,使读者在熟悉 了Qt/X11的基础上能够很快过渡到Qtopia Core开发。 本书的读者对象: 本书通俗易懂,可作为高等院校电子类、电气类、控制类、计算机类等专业本科生、研 究生学习嵌入式Linux的参考书目或自学教材,也可供广大希望转入嵌入式领域的科研和工 程技术人员参考使用,还可作为广大嵌入式培训班的教材和教辅材料。 致谢: 首先要感谢这本书的另外一位作者欧文盛,书中Qt GUI部分(第9章到第12章)主要 由他来完成,由于他这几年一直在国际知名的通信公司从事Qt方面的开发工作,所以这部 分由他来完成,出版社和我都很放心。其次,我要感谢我的妻子,很特殊的是我写这本书的 时间正是我妻子怀孕的期间,其实在写这本书之前已经得知妻子怀孕,所以本想放弃编写这 本书,但是妻子却很坚定的支持我写这本书。所以,我认为这本书的完成离不开她对我的默 默支持。其次,要感谢我的岳父、岳母,是他们对我妻子这段时间的精心照顾,才使得我有 更多的时间投入到写书中。 最后,要感谢威盛电子的李松,易宏宇,周志勇,张磊等,他们为本书的完成也提供了 很多的帮助。 鉴于作者水平有限,加之时间仓促,本书一定有不少错误与不清楚之处,希望得到广大 读者批评与指正。有兴趣的读者可以发送E-mail到[email protected]或登录笔者的个 人Blog来做技术上的交流:http://mike2linus.blog.com.cn/。 作者 2007年3月28日 第一部分 ARM LINUX系统移植...............................................................................................12 第1章 嵌入式系统开发入门.........................................................................................................13 1.1嵌入式系统介绍....................................................................................................................13 1.1.1 嵌入式系统概述............................................................................................................13 1.1.2 嵌入式系统组成............................................................................................................15 1.2 ARM介绍..............................................................................................................................16 1.2.1 ARM处理器介绍............................................................................................................17 1.2.2 ARM处理器的选型........................................................................................................18 1.2.3 S3C2410微处理器介绍..................................................................................................18 1.3 ADS集成开发环境介绍........................................................................................................20 1.3.1 ADS软件组成.................................................................................................................21 1.3.1.1命令行开发工具......................................................................................................................21 1.3.1.2 GUI开发环境..........................................................................................................................23 1.3.1.3实用程序.................................................................................................................................23 1.3.1.4支持的软件.............................................................................................................................24 1.3.2使用Code Warrior IDE...................................................................................................24 1.3.2.1创建项目工程..........................................................................................................................24 1.3.2.2 编译和链接项目工程..............................................................................................................27 1.3.3使用AXD IDE.................................................................................................................29 1.3.3.1打开调试文件..........................................................................................................................29 1.3.3.2设置断点.................................................................................................................................30 1.3.3.3查看寄存器内容......................................................................................................................30 1.3.3.4查看变量值.............................................................................................................................31 1.4嵌入式LINUX开发介绍........................................................................................................32 1.4.1 Linux历史.......................................................................................................................32 1.4.2 Linux开发环境...............................................................................................................33 1.4.2.1 GCC介绍................................................................................................................................35 1.4.2.2 GNU Make介绍......................................................................................................................36 1.4.2.3 GDB介绍................................................................................................................................38 1.4.3 ARM Linux系统开发流程...............................................................................................41 1.5 LINUX内核介绍.....................................................................................................................43 1.5.1 Linux内核目录结构.......................................................................................................44 1.5.2 如何阅读Linux内核源代码..........................................................................................45 1.6 本章小节...............................................................................................................................47 1.7常见问题...............................................................................................................................48 第2章 交叉编译工具链的构建.....................................................................................................49 2.1 交叉编译工具链介绍............................................................................................................49 2.2 ARM LINUX交叉编译工具链的构建.....................................................................................49 2.2.1分步构建交叉编译链......................................................................................................50 2.2.1.1建立工作目录..........................................................................................................................50 2.2.1.2建立环境变量..........................................................................................................................51 2.2.1.3编译、安装Binutils.................................................................................................................51 2.2.1.4获得内核头文件......................................................................................................................52 2.2.1.5编译安装boot-trap gcc............................................................................................................53 2.2.1.6建立glibc库............................................................................................................................54 2.2.1.7编译安装完整的gcc................................................................................................................55 2.2.1.8测试交叉编译工具链..............................................................................................................55 2.2.2用Crosstool工具构建交叉工具链.................................................................................55 2.2.2.1准备资源文件..........................................................................................................................56 2.2.2.2建立脚本文件..........................................................................................................................56 2.2.2.3 建立配置文件.........................................................................................................................57 2.2.2.4 执行脚本................................................................................................................................57 2.2.2.5 添加环境变量.........................................................................................................................57 2.3本章小节...............................................................................................................................58 2.4常见问题...............................................................................................................................58 第3章 嵌入式系统的BOOTLOADER........................................................................................60 3.1 BOOTLOADER概述.................................................................................................................60 3.2常用的嵌入式LINUX BOOTLOADER.......................................................................................61 3.2.1 U-Boot.............................................................................................................................61 3.2.2 VIVI.................................................................................................................................61 3.2.3 Blob.................................................................................................................................62 3.2.4 RedBoot...........................................................................................................................62 3.2.5 ARMboot.........................................................................................................................63 3.2.6 DIY..................................................................................................................................63 3.3基于S3C2410开发板的BOOTLOADER实现.........................................................................63 3.3.1 S3C2410开发板介绍......................................................................................................63 3.3.2 U-Boot分析与移植.........................................................................................................66 3.3.2.1 U-Boot Stage1分析.................................................................................................................66 3.3.2.2 U-Boot Stage2分析.................................................................................................................71 3.3.2.3 U-Boot的移植过程.................................................................................................................72 3.4基于S3C2410开发板自己编写BOOTLOADER......................................................................88 3.4.1 设计系统的启动流程.....................................................................................................88 3.4.2 BootLoader的具体实现..................................................................................................90 3.4.2.1 设置异常向量表.....................................................................................................................91 3.4.2.2初始化看门狗和外围电路.......................................................................................................92 3.4.2.3初始化存储器..........................................................................................................................92 3.4.2.4初始化堆栈.............................................................................................................................93 3.4.2.5初始化数据区..........................................................................................................................94 3.4.2.6跳转到C程序Main函数........................................................................................................96 3.4.2.7 Main函数的具体实现.............................................................................................................96 3.5本章小节...............................................................................................................................97 3.6常见问题...............................................................................................................................97 第4章 嵌入式LINUX内核移植..................................................................................................98 4.1移植的基本概念....................................................................................................................98 4.2内核移植的准备....................................................................................................................99 4.3内核移植.............................................................................................................................100 4.3.1 内核配置......................................................................................................................100 4.3.1.1修改Makefile........................................................................................................................100 4.3.1.2设置NAND Flash分区.........................................................................................................101 4.3.1.3配置内核选项........................................................................................................................104 4.3.2 内核编译......................................................................................................................108 4.3.2.1清除冗余文件........................................................................................................................108 4.3.2.2编译内核映像和模块............................................................................................................108 4.3.2.3安装模块...............................................................................................................................109 4.3.3内核下载.......................................................................................................................109 4.4 建立LINUX根文件系统......................................................................................................110 4.4.1根文件系统的基本介绍................................................................................................110 4.4.1.1根文件系统的基本目录结构.................................................................................................110 4.4.1.2常见的根文件系统................................................................................................................111 4.4.1.3选择根文件系统....................................................................................................................112 4.4.2建立根文件系统...........................................................................................................113 4.4.2.1Cramfs工具包的使用.............................................................................................................113 4.2.2.2构建Cramfs根文件系统.......................................................................................................114 4.5本章小节.............................................................................................................................117 4.6常见问题.............................................................................................................................117 第二部分 ARM LINUX 设备驱动程序开发...............................................................................119 第5章 ARM LINUX 驱动程序开发入门...................................................................................120 5.1嵌入式LINUX驱动程序介绍...............................................................................................120 5.1.1驱动程序的作用...........................................................................................................120 5.1.2 Linux设备驱动程序分类..............................................................................................121 5.2最简单的内核模块举例.......................................................................................................122 5.2.1 编写Hello World模块.................................................................................................122 5.2.2编写Hello World模块的Makefile................................................................................124 5.2.3加载和卸载Hello World模块.......................................................................................125 5.3 LINUX驱动程序开发要点....................................................................................................125 5.3.1 内存与I/O端口...........................................................................................................125 5.3.1.1内存.......................................................................................................................................126 5.3.1.2 I/O端口.................................................................................................................................129 5.3.2并发控制.......................................................................................................................130 5.3.2.1自旋锁(Spinlocks).............................................................................................................131 5.3.2.2信号量(Semaphores).........................................................................................................133 5.3.3阻塞(Blocking)与非阻塞(Nonblocking)...............................................................135 5.3.3.1阻塞(Blocking)与非阻塞(Nonblocking)操作................................................................135 5.3.3.2异步通知(Asynchronous Notification)...............................................................................135 5.3.4中断处理.......................................................................................................................136 5.3.4.1 Linux中断及其相关函数......................................................................................................136 5.3.4.2 ARM中断处理......................................................................................................................137 5.3.4.3一个Linux中断相关的实例..................................................................................................139 5.3.5 内核调试......................................................................................................................143 5.3.5.1准备内核调试环境................................................................................................................143 5.3.5.2 KDB的基本用法...................................................................................................................144 5.4本章小结.............................................................................................................................146 5.5常见问题.............................................................................................................................147 第6章 字符设备驱动程序...........................................................................................................148 6.1 字符设备驱动介绍..............................................................................................................148 6.1.1字符设备驱动相关的重要结构.....................................................................................148 6.1.1.1 file_operations(文件操作)结构..........................................................................................148 6.1.1.2 file(文件)结构...................................................................................................................151 6.1.1.3 inode(节点)结构...............................................................................................................152 6.1.2主、次设备号...............................................................................................................154 6.1.2.1主、次设备号的内部表示.....................................................................................................155 6.1.2.2静态分配和释放主设备号.....................................................................................................155 6.1.2.3 动态分配主设备号...............................................................................................................156 6.2 字符设备驱动开发实例......................................................................................................157 6.2.1四线电阻式触摸屏原理................................................................................................157 6.2.2 S3C2410触摸屏工作原理............................................................................................158 6.2.3 S3C2410的ADC和触摸屏接口特殊寄存器................................................................159 6.2.3.1 ADC控制(ADCCON)寄存器...........................................................................................159 6.2.3.2 ADC 触摸屏控制(ADCTSC)寄存器................................................................................160 6.2.3.3 ADC开始延迟(ADCDLY)寄存器....................................................................................161 6.2.3.4 ADC 转化数据 (ADCDAT0) 寄存器...................................................................................161 6.2.3.5 ADC转化数据(ADCDAT1)寄存器........................................................................................162 6.2.4 触摸屏驱动概要设计...................................................................................................162 6.2.4.1触摸屏硬件接口....................................................................................................................162 6.2.4.2触摸屏驱动程序流程设计.....................................................................................................163 6.2.5触摸屏驱动程序分析....................................................................................................164 6.2.5.1触摸屏设备初始化................................................................................................................165 6.2.5.2触摸屏设备文件操作............................................................................................................168 6.2.5.3 open和release方法..............................................................................................................168 6.2.5.4 read和poll方法....................................................................................................................169 6.2.5.5 触摸屏中断和ADC中断的实现..........................................................................................170 6.2.6配置和编译驱动程序....................................................................................................172 6.2.7测试触摸屏驱动程序....................................................................................................173 6.2.8触摸屏的校准...............................................................................................................174 6.3本章小节.............................................................................................................................175 6.4常见问题.............................................................................................................................176 第7章 块设备驱动程序..............................................................................................................177 7.1块设备驱动介绍..................................................................................................................177 7.1.1块设备驱动相关的重要结构........................................................................................177 7.1.1.1block_device_operations(块设备操作)结构........................................................................177 7.1.1.2 gendisk结构..........................................................................................................................178 7.1.1.3 request结构...........................................................................................................................180 7.1.2请求处理.......................................................................................................................182 7.1.2.1 request函数...........................................................................................................................182 7.1.2.2 request函数实例...................................................................................................................182 7.2块设备驱动开发实例...........................................................................................................183 7.2.1 MMC/SD介绍...............................................................................................................184 7.2.2 S3C2410提供的SDI接口............................................................................................186 7.2.3 SDI相关的寄存器........................................................................................................187 7.2.3.1 SDI控制(SDICON)寄存器...............................................................................................188 7.2.3.2 SDI波特率预定标(SDIPRE)寄存器.................................................................................188 7.2.3.3 SDI命令参数(SDICARG)寄存器..........................................................................................188 7.2.3.4 SDI命令控制(SDICCON)寄存器..........................................................................................189 7.2.3.5 SDI命令状态(SDICSTA)寄存器...........................................................................................189 7.2.3.6 SDI响应(SDIRSP)寄存器.....................................................................................................189 7.2.3.7 SDI数据/占用定时器(SDIDTIMER)寄存器..........................................................................190 7.2.3.8 SDI块大小(SDIBSIZE)寄存器..............................................................................................190 7.2.4 MMC/SD驱动概要设计................................................................................................191 7.2.4.1 MMC/SD与主机的接口连接................................................................................................191 7.2.4.2 MMC/SD驱动框架...............................................................................................................191 7.2.4.3 MMC驱动的核心设计..........................................................................................................193 7.2.5 MMC驱动程序分析.....................................................................................................193 7.2.5.1 MMC初始化.........................................................................................................................193 7.2.5.2 open和release方法..............................................................................................................195 7.2.5.3 ioctl方法...............................................................................................................................196 7.2.5.4 MMC驱动的request方法.....................................................................................................196 7.2.6 S3C2410 SDI接口驱动分析.........................................................................................198 7.2.6.1 SDI初始化............................................................................................................................199 7.2.6.2 SDI接口驱动方法.................................................................................................................199 7.2.7配置和编译驱动程序....................................................................................................200 7.3本章小结.............................................................................................................................200 7.4常见问题.............................................................................................................................200 第8章 网络设备驱动程序...........................................................................................................202 8.1网络设备驱动介绍..............................................................................................................202 8.1.1 网络设备驱动相关的重要结构....................................................................................202 8.1.1.1 net_device结构......................................................................................................................202 8.1.1.2 sk_buff结构..........................................................................................................................204 8.1.2常见的网络术语...........................................................................................................205 8.1.2.1常见的网络协议....................................................................................................................205 8.1.2.2以太网介绍...........................................................................................................................206 8.2网络设备驱动开发实例.......................................................................................................207 8.2.1CS8900A介绍................................................................................................................207 8.2.1.1CS8900A的组成部分介绍.....................................................................................................207 8.2.1.2 CS8900A的系统应用............................................................................................................208 8.2.2CS8900A网卡驱动概要设计.........................................................................................209 8.2.2.1 CS8900A网卡接口...............................................................................................................209 8.2.2.2网络驱动程序的体系结构.....................................................................................................209 8.2.2.3网络驱动程序的主要功能.....................................................................................................210 8.2.3 CS8900A适配器驱动程序分析....................................................................................211 8.2.3.1初始化...................................................................................................................................211 8.2.3.2 open和stop方法...................................................................................................................214 8.2.3.3数据发送...............................................................................................................................216 8.2.3.4数据接收...............................................................................................................................217 8.3本章小结.............................................................................................................................220 8.4常见问题.............................................................................................................................220 第三部分 QT GUI 开发...............................................................................................................221 第9章 QT 概述...........................................................................................................................222 9.1 LINUX下GUI介绍..............................................................................................................222 9.1.1 Linux桌面GUI系统....................................................................................................222 9.1.1.1 X Window系统.....................................................................................................................223 9.1.1.2 GNOME/Gtk+和KDE/Qt......................................................................................................224 9.1.2 嵌入式Linux下的GUI系统.......................................................................................226 9.2 QT/X11介绍........................................................................................................................227 9.2.1 Qt的历史和Qt/X11的由来..........................................................................................227 9.2.2 Qt/X11的版权问题.......................................................................................................228 9.2.3 Qt/X11及Qt/Windows的系统架构图对比....................................................................228 9.2.4 Qt的特性简介..............................................................................................................228 9.3 QTOPIA CORE 介绍...............................................................................................................229 9.3.1 Qtopia Core与Qt/Embedded........................................................................................229 9.3.2 Qtopia Core的体系结构...............................................................................................230 9.3.2.1 Frame Buffer(帧缓存)简介.....................................................................................................230 9.3.2.2 Qtopia Core的窗口系统........................................................................................................231 9.4 本章小结.............................................................................................................................231 9.5常见问题.............................................................................................................................231 第10章 QT/X11 初步..................................................................................................................233 10.1 QT/X11的安装...................................................................................................................233 10.1.1 Qt/X11的下载及双重授权问题的说明.......................................................................233 10.1.2 Qt/X11的安装详解.....................................................................................................234 10.2 QT下的HELLO WORLD......................................................................................................235 10.3 温度转换的小例子............................................................................................................237 10.3.1 背景知识....................................................................................................................237 10.3.2 Quit按钮.....................................................................................................................237 10.3.3摄氏温度的显示.........................................................................................................241 10.3.4 华氏温度的显示........................................................................................................243 10.3.5 华氏温度和摄氏温度之间的转换..............................................................................247 10.3.6 保存当前的数值........................................................................................................251 10.4 本章小结...........................................................................................................................256 10.5 常见问题...........................................................................................................................257 第11章 QT 核心技术..................................................................................................................258 11.1信号(SIGNALS)和槽(SLOTS)................................................................................................258 11.1.1 常见的GUI组件通信方式........................................................................................258 11.1.1.1 回调函数.............................................................................................................................258 11.1.1.2 面向对象的回调.................................................................................................................260 11.1.2 Qt中的信号和槽(Signals and Slots)............................................................................261 11.1.2.1 信号和槽历史和所带来的优点...........................................................................................261 11.1.2.2 信号....................................................................................................................................261 11.1.2.3 槽........................................................................................................................................262 11.1.2.4 信号和槽的效率.................................................................................................................262 11.1.3 自定义信号和槽的小例子..........................................................................................263 11.2 QT对象模型.......................................................................................................................266 11.2.1 元对象系统(Meta-Object System)..........................................................................266 11.2.2 信号和槽机制的实现.................................................................................................272 11.2.2.1 用connection()建立连接.....................................................................................................272 11.2.2.2 信号的发射和槽的执行......................................................................................................278 11.2.3 元对象编译器moc.....................................................................................................282 11.2.3.1 在Makefile中使用moc......................................................................................................282 11.2.3.2 moc用法详解......................................................................................................................282 11.2.3.3 moc及信号和槽机制的局限性............................................................................................283 11.3 QT的窗口系统...................................................................................................................285 11.3.1 窗口部件之间的树型结构..........................................................................................285 11.3.2 窗口部件的布局管理(Layout)...............................................................................288 11.4 国际化...............................................................................................................................291 11.4.1 Qt国际化的基本步骤.................................................................................................291 11.4.1.1 程序员的工作.....................................................................................................................291 11.4.1.2 语言资源管理者和翻译工作者的工作................................................................................292 11.4.2 动态改变语言的小例子.............................................................................................292 11.4.3 一些注意事项............................................................................................................298 11.5 本章小结...........................................................................................................................299 11.6 常见问题...........................................................................................................................299 第12章QTOPIA CORE.............................................................................................................301 12.1 QTOPIA CORE的安装..........................................................................................................301 12.2 FRAME BUFFER和QVFB......................................................................................................302 12.2.1 Frame Buffer...............................................................................................................302 12.2.2 编译qvfb....................................................................................................................304 12.2.3 在qvfb上运行Qtopia Core程序...............................................................................305 # ./ DIGITALCLOCK –QWS –DISPLAY QVFB:0.....................................................................306 12.3 移植QT/X11程序到QTOPIA CORE中...............................................................................307 12.4轻量级的窗口系统............................................................................................................309

Description:
序和超过半数的自由软件使用此许可证。Qt 所遵循的GPL 版本是1991 年发布的“版本2”,. 其详细内容请参见http://www.gnu.org/licenses/gpl.html 或者非
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.