书籍详情
嵌入式Linux C语言开发入门与编程实践
作者:商斌
出版社:电子工业出版社
出版时间:2008-05-01
ISBN:9787121063312
定价:¥68.00
购买这本书可以去
内容简介
本书从嵌入式系统基础概念讲起,共分3篇、10章。第1篇扼要地介绍嵌入式Linux系统开发的基础知识,并回顾ANSI C语言的语法知识。第2篇介绍嵌入式Linux C语言开发中的重要技术,包括常用数据类型与修饰符、预处理器与重要函数、常用数据结构及嵌入汇编语言与移植性问题等应用性内容,结合项目实例展开讨论。第3篇则分别给出在嵌入式GUI应用开发、驱动开发和网络应用开发等3方面的实际案例,详细讲解了嵌入式Linux C语言开发技术的综合运用。本书具有由浅入深、通俗易懂和注重实践等特点,适合于没有或者缺乏嵌入式Linux程序设计经验的初学者作为嵌入式Linux C语言开发的自学教材,同时也适合于已掌握C语言基础编程技术,需要提高嵌入式C语言编程实践能力,以及对嵌入式Linux编程感兴趣的程序员进行阅读。
作者简介
暂缺《嵌入式Linux C语言开发入门与编程实践》作者简介
目录
第1篇 嵌入式Linux开发介绍
第1章 嵌入式系统基础 3
1.1 嵌入式系统概述 4
1.1.1 身边的嵌入式系统 4
1.1.2 什么是嵌入式系统 6
1.1.3 嵌入式系统发展趋势 9
1.2 嵌入式操作系统 11
1.2.1 概述 11
1.2.2 嵌入式Linux系统 11
1.2.3 其他嵌入式操作系统介绍 15
1.3 ARM处理器平台介绍 17
1.3.1 嵌入式处理器特点与分类 17
1.3.2 ARM处理器介绍 19
1.3.3 ARM体系结构 20
1.4 搭建嵌入式Linux系统
开发环境 24
1.4.1 嵌入式Linux系统的组成
及设计步骤 24
1.4.2 嵌入式Linux开发工具链 25
1.4.3 系统引导程序的移植 26
1.4.4 VIVI移植实现 31
1.5 本章小结 33
第2章 嵌入式Linux C语言开发介绍 35
2.1 嵌入式Linux与C语言 36
2.2 基本编辑器vi的使用 36
2.2.1 进入和退出vi 36
2.2.2 vi的基本编辑命令 37
2.2.3 vi的高级编辑命令 40
2.3 高级编辑器Emacs的使用 43
2.3.1 Emacs的启动与退出 43
2.3.2 Emacs的基本操作 45
2.3.3 Emacs的高级命令 46
2.4 编译器GCC的使用 50
2.4.1 GCC简介 50
2.4.2 GCC的编译过程 50
2.4.3 GCC的常用模式 51
2.4.4 GCC的常用选项 52
2.4.5 GCC的警告功能 53
2.5 调试器GDB的使用 55
2.5.1 GDB的调试过程 55
2.5.2 GDB的基本命令 58
2.5.3 GDB的高级命令 60
2.6 Make工程管理器 64
2.6.1 Make管理器简介 64
2.6.2 Makefile的描述规则 65
2.6.3 一个简单示例 66
2.6.4 make如何工作 67
2.6.5 指定变量 69
2.6.6 自动推导规则 70
2.6.7 另类风格的Makefile 71
2.6.8 清除工作目录过程文件 71
2.7 本章小结 72
第3章 C语言基础回顾 73
3.1 C语言的“基础字符”与
“词汇” 74
3.2 数据类型 75
3.2.1 常量和变量 77
3.2.2 整型数据 78
3.2.3 浮点型数据 81
3.2.4 字符型数据 83
3.2.5 变量初始化 86
3.2.6 各类数值型数据间的
混合运算 87
3.3 运算符与表达式 88
3.3.1 算术运算符和算术表达式 89
3.3.2 赋值运算符和赋值表达式 93
3.3.3 逗号运算符和逗号表达式 97
3.4 程序流程控制 98
3.4.1 选择语句 100
3.4.2 循环语句 107
3.5 字符输入/输出 117
3.5.1 单字符输入/输出 118
3.5.2 格式输入与输出 119
3.6 函数 126
3.6.1 函数的定义与声明 128
3.6.2 函数的参数、值和基本调用 128
3.6.3 函数的嵌套与递归调用 134
3.6.4 数组函数 137
3.6.5 局部变量 141
3.6.6 全局变量和外部变量 142
3.6.7 变量的存储类别 143
3.6.8 内部函数和外部函数 148
3.7 本章小结 150
第2篇 嵌入式Linux C语言开发入门
第4章 嵌入式Linux C语言常用数据
类型与修饰符 157
4.1 指针 158
4.1.1 指针的概念 158
4.1.2 指向指针的指针 161
4.1.3 指针数组 162
4.1.4 函数指针 164
4.1.5 链表 165
4.1.6 嵌入式Linux中指针
使用实例 165
4.2 数组 167
4.2.1 一维数组 168
4.2.2 多维数组 170
4.2.3 字符数组 173
4.2.4 嵌入式Linux中数组
使用实例 176
4.3 结构体与共用体 177
4.3.1 结构体的声明与定义 178
4.3.2 结构体的引用与初始化 181
4.3.3 结构体数组 182
4.3.4 结构体指针 184
4.3.5 共用体 188
4.3.6 typedef的使用 193
4.3.7 嵌入式Linux中结构体与
共用体使用实例 195
4.4 数据类型修饰符 198
4.4.1 const和volatile 199
4.4.2 signed和unsigned 199
4.4.3 short和long 200
4.4.4 near和far 200
4.4.5 嵌入式Linux数据类型
修饰符使用实例 200
4.5 存储类修饰符 201
4.6 本章小结 205
第5章 嵌入式Linux C语言预处理器
与重要函数 207
5.1 头文件的概念和配置 208
5.2 预处理器 210
5.2.1 预处理的概念 211
5.2.2 预定义宏 211
5.2.3 文件包含 214
5.2.4 条件编译 215
5.2.5 行号控制 217
5.3 字符串函数 218
5.3.1 char数据类型 218
5.3.2 字符串输入 221
5.3.3 字符串输出 222
5.3.4 字符串函数 224
5.3.5 嵌入式Linux中字符串编程
实例 235
5.4 文件输入/输出函数 238
5.4.1 嵌入式Linux C文件概述 238
5.4.2 基本I/O函数 240
5.4.3 文件打包和压缩 246
5.4.4 其他I/O函数 250
5.4.5 嵌入式Linux中文件
输入/输出编程实例 252
5.5 内存操作函数 254
5.5.1 类型转换 254
5.5.2 分配和释放内存 261
5.5.3 内存块操作 264
5.5.4 位操作 267
5.5.5 内存关键字 270
5.5.6 嵌入式Linux中内存操作
编程实例 273
5.6 Linux内核函数 276
5.6.1 Linux内核介绍 276
5.6.2 进程管理函数 277
5.6.3 文件操作函数 285
5.6.4 时间函数 297
5.6.5 信号处理函数 298
5.6.6 消息管理函数 306
5.6.7 线程操作函数 310
5.6.8 网络编程函数 318
5.6.9 嵌入式Linux内核的移植和
修改 326
5.6.10 嵌入式Linux中内核
编程实例 329
第6章 嵌入式Linux C语言常用数据
结构 333
6.1 链表 334
6.1.1 链表概述 334
6.1.2 单向链表 335
6.1.3 循环链表 340
6.1.4 双向链表 342
6.1.5 链表与数组 344
6.1.6 链表与栈 345
6.1.7 嵌入式Linux中链表
使用实例 351
6.2 树 352
6.2.1 树概述 352
6.2.2 二叉树 353
6.2.3 平衡二叉树 358
6.2.4 嵌入式Linux中树的使用
实例 359
6.3 哈希表 360
6.3.1 哈希表概述 360
6.3.2 哈希表构造 360
6.3.3 哈希表处理冲突的方法 362
6.3.4 嵌入式Linux中哈希表
使用实例 363
6.4 本章小结 364
第7章 嵌入式Linux C语言嵌入汇编
语言与移植性问题 365
7.1 嵌入汇编语言 366
7.1.1 内嵌汇编的语法 366
7.1.2 GCC对内嵌汇编语言的
处理方法 370
7.1.3 嵌入式Linux中嵌入汇编
实例 371
7.2 移植性问题 374
7.2.1 字长和数据类型 374
7.2.2 数据对齐 376
7.2.3 字节顺序 378
7.2.4 嵌入式Linux中代码移植
实例 378
7.3 本章小结 379
第3篇 嵌入式Linux C语言编程实践
第8章 工控触摸屏人机界面系统的
开发 383
8.1 嵌入式数控系统人机
界面介绍 384
8.1.1 嵌入式数控系统及其人机
界面概述 384
8.1.2 工控触摸屏人机界面系统的
现状 385
8.2 嵌入式数控系统硬件结构 386
8.2.1 CEB270开发板介绍 386
8.2.2 嵌入式数控系统硬件总体
结构 387
8.2.3 Intel Xscale PXA 270处理器 388
8.2.4 Flash 390
8.2.5 SDRAM 390
8.3 人机界面程序开发模式 391
8.3.1 嵌入式数控系统软件结构 391
8.3.2 数控系统人机界面特点 391
8.3.3 嵌入式数控系统的软件开发
模式 392
8.3.4 宿主机与目标机 392
8.3.5 交叉编译 393
8.3.6 远程调试 393
8.3.7 数控系统人机界面开发环境 394
8.4 嵌入式Linux系统移植基础 395
8.4.1 Bootloader的作用 395
8.4.2 Bootloader移植 397
8.4.3 U-BOOT的移植 400
8.4.4 内核启动部分的移植 401
8.5 设备驱动移植基础 406
8.5.1 设备驱动程序接口 408
8.5.2 设备驱动程序模块 409
8.5.3 设备驱动程序结构 410
8.6 文件系统移植基础 411
8.6.1 JFFS2文件系统 411
8.6.2 嵌入式根文件系统 413
8.7 移植U-BOOT到人机界面
开发板上 416
8.7.1 选择U-BOOT的原因 416
8.7.2 U-BOOT主要目录结构 417
8.7.3 U-BOOT支持的主要功能 417
8.7.4 U-BOOT移植过程 418
8.7.5 将U-BOOT移植到开发板
的具体过程 419
8.8 人机界面开发板的Linux内核
移植 421
8.8.1 准备Linux内核源代码 421
8.8.2 修改Linux内核源代码 421
8.8.3 内核调试 423
8.8.4 总结 423
8.9 本章小结 424
第9章 基于PCI总线的无线网卡驱动
开发 425
9.1 Linux设备驱动程序概述 426
9.1.1 Linux设备驱动程序与
内核的关系 426
9.1.2 Linux内核的组成 426
9.1.3 Linux硬件驱动架构 427
9.1.4 设备驱动程序与内核的接口 428
9.1.5 内核为驱动程序提供的支持 429
9.2 Linux设备驱动程序开发基础 431
9.2.1 内存管理问题 431
9.2.2 中断处理 433
9.2.3 I/O端口 438
9.2.4 DMA处理 439
9.2.5 时间流 440
9.3 Linux下的设备与模块分类 443
9.4 Linux字符设备驱动开发介绍 444
9.4.1 主设备号和次设备号 444
9.4.2 字符设备驱动程序的组成 445
9.4.3 文件操作 446
9.5 块设备的驱动程序 448
9.6 网络设备接口驱动程序 449
9.6.1 网络设备概述 449
9.6.2 网络设备与字符设备、块设备
的不同点 450
9.6.3 网络设备的运行机制 450
9.6.4 数据包的发送与接收 451
9.6.5 网络设备驱动的实现模式 452
9.7 Ralink无线网卡介绍 453
9.7.1 Ralink无线网卡结构 453
9.7.2 无线通信协议的选用 454
9.8 Ralink无线网卡驱动开发 455
9.8.1 Ralink无线网卡驱动程序的
开发概述 455
9.8.2 关键数据结构的开发 455
9.8.3 802.11帧结构的设置 460
9.8.4 设备初始化模块驱动程序
开发 463
9.8.5 设备打开模块驱动程序的
开发 465
9.8.6 数据发送模块驱动程序的
开发 471
9.8.7 中断处理模块驱动程序的
开发 478
9.8.8 设备关闭模块驱动程序的
开发 481
9.8.9 设备卸载模块驱动程序的
开发 482
9.8.10 驱动程序IOCTL函数 484
9.8.11 驱动程序的调试 493
9.9 本章小结 494
第10章 基于Linux的嵌入式微
浏览器的设计与开发 495
10.1 嵌入式微浏览器概述 496
10.1.1 嵌入式微浏览器的定义 496
10.1.2 嵌入式微浏览器的
发展历程 496
10.1.3 浏览器的应用 497
10.1.4 嵌入式微浏览器的应用 498
10.1.5 嵌入式微浏览器的设计
要求 499
10.1.6 嵌入式微浏览器与桌面
浏览器的区别 500
10.1.7 嵌入式微浏览器的特点 501
10.1.8 当前主流嵌入式微浏览器
分析 502
10.1.9 3G的概念与业务分类 505
10.1.10 嵌入式微浏览器与3G的
结合 507
10.1.11 嵌入式微浏览器与
WAP技术的结合 508
10.1.12 嵌入式微浏览器与Java
技术的结合 509
10.2 嵌入式微浏览器的相关
协议介绍 510
10.2.1 HTTP概述 510
10.2.2 HTTP报文 510
10.2.3 HTTP请求 513
10.2.4 HTTP响应 515
10.2.5 HTTP实体 516
10.2.6 TCP/IP 516
10.2.7 Socket套接字 518
10.2.8 GPRS 519
10.2.9 PPP 524
10.2.10 WAP规范 529
10.3 嵌入式微浏览器相关规范
与标准介绍 532
10.3.1 HTML规范 532
10.3.2 HTML的语法树 534
10.3.3 CSS 2.0介绍 534
10.3.4 XHTML 535
10.3.5 XML 536
10.3.6 无线标记语言WML 537
10.3.7 DOM技术标准 549
10.3.8 DOM的发展历程 550
10.3.9 XPCOM组件对象模型 552
10.3.10 XPCOM组件 554
10.3.11 XPCOM组件内部机制 556
10.4 嵌入式微浏览器相关技术
难点剖析 559
10.4.1 网页标记的取舍 559
10.4.2 HTML标记的容错处理 560
10.4.3 系统内存优化 563
10.4.4 页面的布局合理性问题 565
10.4.5 可移植性问题 565
10.4.6 DOM的基本接口 566
10.4.7 DOM接口对XHTML
的操作 570
10.4.8 图形用户界面 572
10.5 基于Linux的嵌入式
微浏览器的总体设计 575
10.5.1 体系结构设计 575
10.5.2 总体模块结构 576
10.5.3 主要数据结构 577
10.5.4 嵌入式微浏览器的
数据流程 578
10.6 关键模块的设计与开发 578
10.6.1 系统设计概述 579
10.6.2 HTTP设计和实现 581
10.6.3 HTML解析模块 587
10.6.4 DOM模块 595
10.6.5 Content模块 602
10.6.6 Layout排版模块 602
10.6.7 显示引擎的设计 602
10.6.8 GFX模块 603
10.6.9 Widget模块 608
10.6.10 View模块 611
10.6.11 Embeding API 612
10.7 嵌入式微浏览器在模拟
环境下的运行情况 613
10.8 本章小结 614
第1章 嵌入式系统基础 3
1.1 嵌入式系统概述 4
1.1.1 身边的嵌入式系统 4
1.1.2 什么是嵌入式系统 6
1.1.3 嵌入式系统发展趋势 9
1.2 嵌入式操作系统 11
1.2.1 概述 11
1.2.2 嵌入式Linux系统 11
1.2.3 其他嵌入式操作系统介绍 15
1.3 ARM处理器平台介绍 17
1.3.1 嵌入式处理器特点与分类 17
1.3.2 ARM处理器介绍 19
1.3.3 ARM体系结构 20
1.4 搭建嵌入式Linux系统
开发环境 24
1.4.1 嵌入式Linux系统的组成
及设计步骤 24
1.4.2 嵌入式Linux开发工具链 25
1.4.3 系统引导程序的移植 26
1.4.4 VIVI移植实现 31
1.5 本章小结 33
第2章 嵌入式Linux C语言开发介绍 35
2.1 嵌入式Linux与C语言 36
2.2 基本编辑器vi的使用 36
2.2.1 进入和退出vi 36
2.2.2 vi的基本编辑命令 37
2.2.3 vi的高级编辑命令 40
2.3 高级编辑器Emacs的使用 43
2.3.1 Emacs的启动与退出 43
2.3.2 Emacs的基本操作 45
2.3.3 Emacs的高级命令 46
2.4 编译器GCC的使用 50
2.4.1 GCC简介 50
2.4.2 GCC的编译过程 50
2.4.3 GCC的常用模式 51
2.4.4 GCC的常用选项 52
2.4.5 GCC的警告功能 53
2.5 调试器GDB的使用 55
2.5.1 GDB的调试过程 55
2.5.2 GDB的基本命令 58
2.5.3 GDB的高级命令 60
2.6 Make工程管理器 64
2.6.1 Make管理器简介 64
2.6.2 Makefile的描述规则 65
2.6.3 一个简单示例 66
2.6.4 make如何工作 67
2.6.5 指定变量 69
2.6.6 自动推导规则 70
2.6.7 另类风格的Makefile 71
2.6.8 清除工作目录过程文件 71
2.7 本章小结 72
第3章 C语言基础回顾 73
3.1 C语言的“基础字符”与
“词汇” 74
3.2 数据类型 75
3.2.1 常量和变量 77
3.2.2 整型数据 78
3.2.3 浮点型数据 81
3.2.4 字符型数据 83
3.2.5 变量初始化 86
3.2.6 各类数值型数据间的
混合运算 87
3.3 运算符与表达式 88
3.3.1 算术运算符和算术表达式 89
3.3.2 赋值运算符和赋值表达式 93
3.3.3 逗号运算符和逗号表达式 97
3.4 程序流程控制 98
3.4.1 选择语句 100
3.4.2 循环语句 107
3.5 字符输入/输出 117
3.5.1 单字符输入/输出 118
3.5.2 格式输入与输出 119
3.6 函数 126
3.6.1 函数的定义与声明 128
3.6.2 函数的参数、值和基本调用 128
3.6.3 函数的嵌套与递归调用 134
3.6.4 数组函数 137
3.6.5 局部变量 141
3.6.6 全局变量和外部变量 142
3.6.7 变量的存储类别 143
3.6.8 内部函数和外部函数 148
3.7 本章小结 150
第2篇 嵌入式Linux C语言开发入门
第4章 嵌入式Linux C语言常用数据
类型与修饰符 157
4.1 指针 158
4.1.1 指针的概念 158
4.1.2 指向指针的指针 161
4.1.3 指针数组 162
4.1.4 函数指针 164
4.1.5 链表 165
4.1.6 嵌入式Linux中指针
使用实例 165
4.2 数组 167
4.2.1 一维数组 168
4.2.2 多维数组 170
4.2.3 字符数组 173
4.2.4 嵌入式Linux中数组
使用实例 176
4.3 结构体与共用体 177
4.3.1 结构体的声明与定义 178
4.3.2 结构体的引用与初始化 181
4.3.3 结构体数组 182
4.3.4 结构体指针 184
4.3.5 共用体 188
4.3.6 typedef的使用 193
4.3.7 嵌入式Linux中结构体与
共用体使用实例 195
4.4 数据类型修饰符 198
4.4.1 const和volatile 199
4.4.2 signed和unsigned 199
4.4.3 short和long 200
4.4.4 near和far 200
4.4.5 嵌入式Linux数据类型
修饰符使用实例 200
4.5 存储类修饰符 201
4.6 本章小结 205
第5章 嵌入式Linux C语言预处理器
与重要函数 207
5.1 头文件的概念和配置 208
5.2 预处理器 210
5.2.1 预处理的概念 211
5.2.2 预定义宏 211
5.2.3 文件包含 214
5.2.4 条件编译 215
5.2.5 行号控制 217
5.3 字符串函数 218
5.3.1 char数据类型 218
5.3.2 字符串输入 221
5.3.3 字符串输出 222
5.3.4 字符串函数 224
5.3.5 嵌入式Linux中字符串编程
实例 235
5.4 文件输入/输出函数 238
5.4.1 嵌入式Linux C文件概述 238
5.4.2 基本I/O函数 240
5.4.3 文件打包和压缩 246
5.4.4 其他I/O函数 250
5.4.5 嵌入式Linux中文件
输入/输出编程实例 252
5.5 内存操作函数 254
5.5.1 类型转换 254
5.5.2 分配和释放内存 261
5.5.3 内存块操作 264
5.5.4 位操作 267
5.5.5 内存关键字 270
5.5.6 嵌入式Linux中内存操作
编程实例 273
5.6 Linux内核函数 276
5.6.1 Linux内核介绍 276
5.6.2 进程管理函数 277
5.6.3 文件操作函数 285
5.6.4 时间函数 297
5.6.5 信号处理函数 298
5.6.6 消息管理函数 306
5.6.7 线程操作函数 310
5.6.8 网络编程函数 318
5.6.9 嵌入式Linux内核的移植和
修改 326
5.6.10 嵌入式Linux中内核
编程实例 329
第6章 嵌入式Linux C语言常用数据
结构 333
6.1 链表 334
6.1.1 链表概述 334
6.1.2 单向链表 335
6.1.3 循环链表 340
6.1.4 双向链表 342
6.1.5 链表与数组 344
6.1.6 链表与栈 345
6.1.7 嵌入式Linux中链表
使用实例 351
6.2 树 352
6.2.1 树概述 352
6.2.2 二叉树 353
6.2.3 平衡二叉树 358
6.2.4 嵌入式Linux中树的使用
实例 359
6.3 哈希表 360
6.3.1 哈希表概述 360
6.3.2 哈希表构造 360
6.3.3 哈希表处理冲突的方法 362
6.3.4 嵌入式Linux中哈希表
使用实例 363
6.4 本章小结 364
第7章 嵌入式Linux C语言嵌入汇编
语言与移植性问题 365
7.1 嵌入汇编语言 366
7.1.1 内嵌汇编的语法 366
7.1.2 GCC对内嵌汇编语言的
处理方法 370
7.1.3 嵌入式Linux中嵌入汇编
实例 371
7.2 移植性问题 374
7.2.1 字长和数据类型 374
7.2.2 数据对齐 376
7.2.3 字节顺序 378
7.2.4 嵌入式Linux中代码移植
实例 378
7.3 本章小结 379
第3篇 嵌入式Linux C语言编程实践
第8章 工控触摸屏人机界面系统的
开发 383
8.1 嵌入式数控系统人机
界面介绍 384
8.1.1 嵌入式数控系统及其人机
界面概述 384
8.1.2 工控触摸屏人机界面系统的
现状 385
8.2 嵌入式数控系统硬件结构 386
8.2.1 CEB270开发板介绍 386
8.2.2 嵌入式数控系统硬件总体
结构 387
8.2.3 Intel Xscale PXA 270处理器 388
8.2.4 Flash 390
8.2.5 SDRAM 390
8.3 人机界面程序开发模式 391
8.3.1 嵌入式数控系统软件结构 391
8.3.2 数控系统人机界面特点 391
8.3.3 嵌入式数控系统的软件开发
模式 392
8.3.4 宿主机与目标机 392
8.3.5 交叉编译 393
8.3.6 远程调试 393
8.3.7 数控系统人机界面开发环境 394
8.4 嵌入式Linux系统移植基础 395
8.4.1 Bootloader的作用 395
8.4.2 Bootloader移植 397
8.4.3 U-BOOT的移植 400
8.4.4 内核启动部分的移植 401
8.5 设备驱动移植基础 406
8.5.1 设备驱动程序接口 408
8.5.2 设备驱动程序模块 409
8.5.3 设备驱动程序结构 410
8.6 文件系统移植基础 411
8.6.1 JFFS2文件系统 411
8.6.2 嵌入式根文件系统 413
8.7 移植U-BOOT到人机界面
开发板上 416
8.7.1 选择U-BOOT的原因 416
8.7.2 U-BOOT主要目录结构 417
8.7.3 U-BOOT支持的主要功能 417
8.7.4 U-BOOT移植过程 418
8.7.5 将U-BOOT移植到开发板
的具体过程 419
8.8 人机界面开发板的Linux内核
移植 421
8.8.1 准备Linux内核源代码 421
8.8.2 修改Linux内核源代码 421
8.8.3 内核调试 423
8.8.4 总结 423
8.9 本章小结 424
第9章 基于PCI总线的无线网卡驱动
开发 425
9.1 Linux设备驱动程序概述 426
9.1.1 Linux设备驱动程序与
内核的关系 426
9.1.2 Linux内核的组成 426
9.1.3 Linux硬件驱动架构 427
9.1.4 设备驱动程序与内核的接口 428
9.1.5 内核为驱动程序提供的支持 429
9.2 Linux设备驱动程序开发基础 431
9.2.1 内存管理问题 431
9.2.2 中断处理 433
9.2.3 I/O端口 438
9.2.4 DMA处理 439
9.2.5 时间流 440
9.3 Linux下的设备与模块分类 443
9.4 Linux字符设备驱动开发介绍 444
9.4.1 主设备号和次设备号 444
9.4.2 字符设备驱动程序的组成 445
9.4.3 文件操作 446
9.5 块设备的驱动程序 448
9.6 网络设备接口驱动程序 449
9.6.1 网络设备概述 449
9.6.2 网络设备与字符设备、块设备
的不同点 450
9.6.3 网络设备的运行机制 450
9.6.4 数据包的发送与接收 451
9.6.5 网络设备驱动的实现模式 452
9.7 Ralink无线网卡介绍 453
9.7.1 Ralink无线网卡结构 453
9.7.2 无线通信协议的选用 454
9.8 Ralink无线网卡驱动开发 455
9.8.1 Ralink无线网卡驱动程序的
开发概述 455
9.8.2 关键数据结构的开发 455
9.8.3 802.11帧结构的设置 460
9.8.4 设备初始化模块驱动程序
开发 463
9.8.5 设备打开模块驱动程序的
开发 465
9.8.6 数据发送模块驱动程序的
开发 471
9.8.7 中断处理模块驱动程序的
开发 478
9.8.8 设备关闭模块驱动程序的
开发 481
9.8.9 设备卸载模块驱动程序的
开发 482
9.8.10 驱动程序IOCTL函数 484
9.8.11 驱动程序的调试 493
9.9 本章小结 494
第10章 基于Linux的嵌入式微
浏览器的设计与开发 495
10.1 嵌入式微浏览器概述 496
10.1.1 嵌入式微浏览器的定义 496
10.1.2 嵌入式微浏览器的
发展历程 496
10.1.3 浏览器的应用 497
10.1.4 嵌入式微浏览器的应用 498
10.1.5 嵌入式微浏览器的设计
要求 499
10.1.6 嵌入式微浏览器与桌面
浏览器的区别 500
10.1.7 嵌入式微浏览器的特点 501
10.1.8 当前主流嵌入式微浏览器
分析 502
10.1.9 3G的概念与业务分类 505
10.1.10 嵌入式微浏览器与3G的
结合 507
10.1.11 嵌入式微浏览器与
WAP技术的结合 508
10.1.12 嵌入式微浏览器与Java
技术的结合 509
10.2 嵌入式微浏览器的相关
协议介绍 510
10.2.1 HTTP概述 510
10.2.2 HTTP报文 510
10.2.3 HTTP请求 513
10.2.4 HTTP响应 515
10.2.5 HTTP实体 516
10.2.6 TCP/IP 516
10.2.7 Socket套接字 518
10.2.8 GPRS 519
10.2.9 PPP 524
10.2.10 WAP规范 529
10.3 嵌入式微浏览器相关规范
与标准介绍 532
10.3.1 HTML规范 532
10.3.2 HTML的语法树 534
10.3.3 CSS 2.0介绍 534
10.3.4 XHTML 535
10.3.5 XML 536
10.3.6 无线标记语言WML 537
10.3.7 DOM技术标准 549
10.3.8 DOM的发展历程 550
10.3.9 XPCOM组件对象模型 552
10.3.10 XPCOM组件 554
10.3.11 XPCOM组件内部机制 556
10.4 嵌入式微浏览器相关技术
难点剖析 559
10.4.1 网页标记的取舍 559
10.4.2 HTML标记的容错处理 560
10.4.3 系统内存优化 563
10.4.4 页面的布局合理性问题 565
10.4.5 可移植性问题 565
10.4.6 DOM的基本接口 566
10.4.7 DOM接口对XHTML
的操作 570
10.4.8 图形用户界面 572
10.5 基于Linux的嵌入式
微浏览器的总体设计 575
10.5.1 体系结构设计 575
10.5.2 总体模块结构 576
10.5.3 主要数据结构 577
10.5.4 嵌入式微浏览器的
数据流程 578
10.6 关键模块的设计与开发 578
10.6.1 系统设计概述 579
10.6.2 HTTP设计和实现 581
10.6.3 HTML解析模块 587
10.6.4 DOM模块 595
10.6.5 Content模块 602
10.6.6 Layout排版模块 602
10.6.7 显示引擎的设计 602
10.6.8 GFX模块 603
10.6.9 Widget模块 608
10.6.10 View模块 611
10.6.11 Embeding API 612
10.7 嵌入式微浏览器在模拟
环境下的运行情况 613
10.8 本章小结 614
猜您喜欢