基本信息·出版社:电子工业出版社 ·页码:744 页 ·出版日期:2010年03月 ·ISBN:9787121100390 ·条形码:9787121100390 ·装帧:平装 ·开本:16 ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
嵌入式Linux系统实用开发 |
|
|
|
嵌入式Linux系统实用开发 |
|
基本信息·出版社:电子工业出版社
·页码:744 页
·出版日期:2010年03月
·ISBN:9787121100390
·条形码:9787121100390
·装帧:平装
·开本:16
内容简介 《嵌入式Linux系统实用开发》从实用的角度出发,以 S3C2410A 芯片及 HY2410A 开发板为主,介绍了嵌入式 ARM 平台上 Linux 系统开发所需的各种技术,包括 ARM 处理器架构与汇编语言、嵌入式 Linux 开发环境的建立、C 及 C++ 语言要点、bootloader 和 Linux 内核的移植、Linux 系统应用编程、Linux 内核驱动编程和 Qt 图形界面应用的开发等,涵盖了嵌入式产品软件开发工作所需的各种主要技术。
目录 第1部分 嵌入式开发基础 1
第1章 引言 2
1.1 嵌入式产业概况 2
1.2 Linux 操作系统 5
1.3 ARM 体系概况 8
1.3.1 ARM7 10
1.3.2 ARM9 11
1.3.3 ARM9E 11
1.3.4 ARM10E 12
1.3.5 ARM11 12
1.3.6 Cortex 12
1.4 常见嵌入式产品及其基本平台简介 13
1.4.1 学习开发板 13
1.4.2 行业终端 16
1.4.3 工业控制 18
1.4.4 手持娱乐 19
1.4.5 医疗仪器 21
1.4.6 汽车电子 22
1.4.7 智能本 23
1.5 嵌入式产品开发基本流程 25
第2章 C语言编程要点 28
2.1 数据类型 28
2.2 常数 29
2.3 变量 31
2.3.1 变量的定义与初始化 31
2.3.2 变量的访问 31
2.3.3 左值与右值 31
2.3.4 只读变量 32
2.4 操作符 32
2.4.1 只读操作符 32
2.4.2 读写操作符 34
2.4.3 类型转换操作符 35
2.4.4 sizeof操作符 36
2.5 表达式和语句 36
2.5.1 表达式 36
2.5.2 语句 37
2.6 复合类型 38
2.6.1 数组 38
2.6.2 结构体 40
2.6.3 位域 42
2.6.4 数据的对齐 43
2.6.5 联合体 44
2.6.6 类型嵌套 44
2.6.7 类型别名 45
2.6.8 枚举类型 46
2.7 流程控制 46
2.7.1 顺序结构 46
2.7.2 分支结构 47
2.7.3 隐含的分支结构 49
2.7.4 循环结构 49
2.7.5 goto 52
2.8 函数 52
2.8.1 声明与定义 52
2.8.2 函数的调用与传值方式 54
2.8.3 函数与复合类型 55
2.8.4 内联函数 56
2.8.5 变量的作用范围与生存期 56
2.9 指针 59
2.9.1 指针与变量 59
2.9.2 指针与操作符 62
2.9.3 指针与数组 63
2.9.4 字符串 64
2.9.5 指针与结构体 65
2.9.6 指针与函数 66
2.9.7 回调函数 69
2.9.8 函数指针类型转换 70
2.10 预处理语句 71
2.10.1 文件包含 71
2.10.2 宏定义 71
2.10.3 宏与函数 73
2.10.4 代码分支 74
第3章 开发环境 76
3.1 Linux 使用基础 76
3.1.1 命令参数与选项 77
3.1.2 文件、目录和路径 77
3.1.3 用户与权限 78
3.1.4 硬链接与符号链接 78
3.1.5 命令使用技巧 79
3.2 Linux 常用命令 79
3.2.1 查阅手册 80
3.2.2 文件相关 81
3.2.3 文件内容相关 84
3.2.4 压缩与解压缩 86
3.2.5 文件系统与磁盘 88
3.2.6 用户与权限 89
3.2.7 进程管理 91
3.2.8 系统信息 92
3.2.9 网络 93
3.3 Shell 使用进阶 96
3.3.1 重定向 96
3.3.2 管道 98
3.3.3 变量与替换 98
3.3.4 环境变量 100
3.3.5 脚本 101
3.3.6 脚本编程 102
3.3.7 作业管理 103
3.4 Debian 5.0 的安装与使用 104
3.4.1 安装 Debian 5.0 105
3.4.2 Debian 5.0 的基本操作 105
3.4.3 常用软件的安装与使用 108
3.4.4 从源码安装软件 113
3.4.5 安装编译环境 115
3.5 建立交叉编译环境 117
3.5.1 下载安装 117
3.5.2 从源码编译安装 117
3.6 vi 编辑器 121
3.6.1 vi 的工作模式 121
3.6.2 普通模式 122
3.6.3 命令行模式 123
3.6.4 寄存器 124
3.6.5 与编程有关的技巧 124
3.7 gcc 工具链 124
3.7.1 编译过程 124
3.7.2 gcc 用法 125
3.8 make 与 Makefile 127
3.8.1 make 工具的使用 127
3.8.2 Makefile 128
3.9 gdb 调试工具 130
3.9.1 调试本地程序 130
3.9.2 远程调试 131
3.10 buildroot 开发工具 132
第2部分 ARM架构与编程 135
第4章 ARM处理器架构与编程模型 136
4.1 嵌入式硬件系统 137
4.1.1 嵌入式系统架构 137
4.1.2 S3C2410A 地址映射 138
4.1.3 HY2410A 开发板硬件配置 139
4.2 ARM 架构概述 139
4.2.1 ARM 处理器模式与寄存器组 139
4.2.2 ARM 异常与异常向量表 142
4.2.3 程序状态寄存器 143
4.2.4 大端与小端存储格式 145
4.3 ARM 指令集概述 146
4.3.1 ARM 汇编指令格式 146
4.3.2 数据处理指令 148
4.3.3 存储器访问指令 150
4.3.4 分支指令 152
4.3.5 软中断指令 153
4.3.6 程序状态寄存器传送指令 154
4.3.7 乘法指令 154
4.3.8 协处理器指令 155
4.3.9 伪指令 157
4.4 GNU ARM 汇编 158
4.4.1 基本语法 158
4.4.2 GNU ARM 汇编伪指令 159
4.5 汇编与 C 语言 163
4.5.1 程序及其二进制映像 163
4.5.2 程序的编译与运行 164
4.5.3 ATPCS 约定 165
4.5.4 汇编与 C 语言的对照 167
4.5.5 函数调用与栈 172
4.5.6 堆的概念 175
4.6 汇编与 C 语言混合编程 175
4.6.1 C 语言调用汇编函数 175
4.6.2 汇编语言中使用 C 全局变量 176
4.6.3 内嵌汇编 177
第5章 搭建嵌入式固件开发平台 181
5.1 硬件设备与软件环境 181
5.2 搭建开发环境 182
5.2.1 硬件连接 182
5.2.2 使用终端软件 183
5.2.3 下载和执行程序 184
5.3 创建固件程序 186
第6章 S3C2410接口与编程 189
6.1 软中断异常编程 189
6.1.1 软中断异常入口 189
6.1.2 软中断异常应用例程 190
6.2 中断控制器及外部中断编程 193
6.2.1 中断体系结构 193
6.2.2 中断控制器 194
6.2.3 中断源安排 194
6.2.4 中断控制器寄存器配置 196
6.2.5 中断应用例程 197
6.3 定时器及其编程 201
6.3.1 定时器体系 201
6.3.2 定时器单元工作原理 202
6.3.3 定时器寄存器配置 203
6.3.4 定时器应用例程 205
6.4 GPIO 接口 209
6.5 UART 控制器及串口通信应用 211
6.5.1 UART 通信原理 211
6.5.2 RS-232C 串行接口标准 212
6.5.3 UART 控制寄存器 213
6.5.4 串口通信应用例程 217
6.6 NAND Flash 芯片与控制器 219
6.6.1 NAND Flash 的访问 220
6.6.2 NAND Flash 控制器 222
6.6.3 NAND Flash 控制器编程实例 223
第7章 U-boot源码分析与移植 227
7.1 bootloader 的概念 227
7.1.1 bootloader 的启动过程 228
7.1.2 bootloader 的操作模式 228
7.1.3 ARM bootloader 的特点 229
7.2 使用 U-boot 230
7.2.1 U-boot 主要命令与环境变量 230
7.2.2 使用实例 232
7.3 U-boot 源码分析 233
7.3.1 总体架构与内存布局 233
7.3.2 源码目录 234
7.3.3 实现分析 235
7.4 U-boot 移植 244
7.4.1 源码修改 244
7.4.2 配置和编译 257
第3部分 Linux系统编程 259
第8章 Linux系统编程基础 260
8.1 系统调用与 API 260
8.2 程序的生成与执行 262
8.3 API 的错误处理 263
8.4 命令行参数与环境变量 263
第9章 Linux文件系统编程 266
9.1 文件的概念 266
9.2 文件描述符与索引节点 267
9.3 文件操作的系统调用接口 268
9.3.1 打开文件 268
9.3.2 从文件读取数据 270
9.3.3 写数据到文件 272
9.3.4 发送控制命令 273
9.3.5 关闭文件 274
9.4 标准 I/O 函数库 275
9.4.1 fopen 276
9.4.2 fread 和 fwrite 276
9.4.3 fclose 277
9.4.4 fflush 277
9.4.5 fseek 和 ftell 277
9.4.6 fgetc,getc 和 getchar 278
9.4.7 fputc,putc 和 putchar 278
9.4.8 fgets 和 gets 279
9.4.9 fputs 和 puts 280
9.4.10 fprintf,printf 和 sprintf 280
9.4.11 fscanf,scanf 和 sscanf 282
9.4.12 标准 I/O 错误处理 284
第10章 深入理解进程 285
10.1 Linux 中的进程 285
10.1.1 创建进程 286
10.1.2 执行程序 287
10.1.3 进程的内存布局 288
10.1.4 进程的状态迁移 290
10.1.5 进程的终止 290
10.2 进程与信号 291
10.2.1 Linux 中的信号处理机制 292
10.2.2 发送信号 293
10.2.3 捕捉信号 295
10.2.4 屏蔽信号 299
10.2.5 信号安全函数 301
10.3 进程与文件 302
10.3.1 内核文件管理 302
10.3.2 进程中的文件 303
10.3.3 文件的重定向 306
10.3.4 文件控制 307
10.4 进程间通信 308
10.4.1 Linux 中的 IPC 309
10.4.2 信号灯与进程同步 310
10.4.3 管道 313
10.4.4 命名管道 314
10.4.5 共享内存 317
10.4.6 消息队列 321
第11章 socket编程 326
11.1 网络协议层次模型 326
11.2 socket 编程接口 327
11.2.1 打开 socket 327
11.2.2 socket 地址 329
11.2.3 网络字节序 330
11.2.4 socket 与地址的绑定 331
11.2.5 侦听 331
11.2.6 接受连接请求 332
11.2.7 连接 332
11.2.8 关闭和切断连接 333
11.2.9 发送数据 333
11.2.10 接收数据 334
11.2.11 使用 socket 选项 335
11.2.12 阻塞与非阻塞操作 337
11.2.13 可靠的发送与接收操作 338
11.2.14 多路复用 339
11.3 socket 编程实例 340
11.3.1 TCP 与 UDP 程序流程 340
11.3.2 TCP 通信例程 340
11.3.3 多进程并发服务器应用 343
11.3.4 多路复用服务器应用 349
11.3.5 UDP 服务器应用 354
第12章 多线程并发程序设计 358
12.1 线程的概念 358
12.2 线程编程接口 358
12.2.1 线程的创建与退出 359
12.2.2 线程属性 359
12.2.3 线程的分离状态 361
12.2.4 线程应用实例 361
12.3 线程的同步 362
12.3.1 使用信号灯进行线程同步 363
12.3.2 使用互斥体 368
12.3.3 使用条件变量 371
12.4 多线程并发程序设计 375
12.4.1 多线程并发服务器应用 375
12.4.2 消费者/生产者模型 381
12.4.3 线程池应用 382
第4部分 内核与驱动编程 389
第13章 内核编程初步 390
13.1 从用户态到内核态 390
13.1.1 实模式与保护模式 390
13.1.2 用户态与内核态 391
13.1.3 内核编程的特点 391
13.1.4 内核模块与驱动 392
13.2 内核模块编程 393
13.2.1 编写源码 393
13.2.2 printk 函数 394
13.2.3 编译内核模块 396
13.2.4 加载与卸载 397
13.2.5 模块参数 397
13.3 字符设备驱动 399
13.3.1 设备文件与设备号 399
13.3.2 字符设备编程接口 400
13.3.3 文件操作 404
13.3.4 访问用户态内存 408
13.3.5 动态分配内存 409
13.3.6 内存操作 409
13.3.7 字符设备驱动例程 415
第14章 内核编程接口 421
14.1 双向环形链表 421
14.1.1 定义与初始化 421
14.1.2 链表操作 422
14.1.3 链表的使用 424
14.2 等待与延时 426
14.2.1 调度与抢占 426
14.2.2 进程运行状态 428
14.2.3 定时 429
14.2.4 等待队列 429
14.2.5 阻塞与非阻塞操作 432
14.2.6 延时 433
14.2.7 等待队列例程 434
14.3 定时器与延期工作 440
14.3.1 定时器 440
14.3.2 tasklet 444
14.3.3 工作队列 446
14.3.4 定时器例程 451
14.4 自旋锁与同步 455
14.4.1 并发与竞态 455
14.4.2 自旋锁 456
14.4.3 原子上下文 460
14.4.4 读写锁 462
14.4.5 原子类型 464
14.4.6 比特位操作 467
14.4.7 互斥体 468
14.4.8 信号灯 470
14.4.9 读写信号灯 472
14.5 端口 IO 和内存映射 IO 473
14.5.1 端口 IO 474
14.5.2 内存映射 IO 477
14.5.3 内存屏障 482
14.6 中断 483
14.6.1 申请和释放中断 483
14.6.2 中断处理函数 484
14.6.3 中断的禁止和使能 485
14.6.4 线程化中断 486
14.6.5 共享中断 486
第15章 Linux 2.6设备模型 488
15.1 对象与集合 488
15.1.1 引用计数 488
15.1.2 内核对象 489
15.1.3 内核对象的类型 492
15.1.4 内核集合 496
15.1.5 内核集合与对象例程 500
15.2 设备管理 504
15.2.1 设备 504
15.2.2 错误码与指针 507
15.2.3 驱动 507
15.2.4 总线 508
15.2.5 类别 510
15.2.6 接口 512
15.3 常见总线与类别 513
15.3.1 platform 总线 513
15.3.2 misc 类别 516
第16章 Linux驱动实例详解 518
16.1 输入设备驱动 518
16.1.1 输入设备编程接口 519
16.1.2 触摸屏驱动例程 523
16.2 USB 驱动 532
16.2.1 USB 概述 533
16.2.2 USB 驱动模型 534
16.2.3 USB 驱动编程接口 535
16.2.4 USB 接口与端点 537
16.2.5 USB 类别 540
16.2.6 URB 541
16.2.7 同步传输接口 546
16.2.8 USB 锚 547
16.2.9 USB 驱动范例分析 549
第5部分 嵌入式Linux系统构建 559
第17章 Linux内核构建 560
17.1 内核编译过程 560
17.2 内核配置系统架构 562
17.2.1 内核 Makefile 562
17.2.2 KBuild 配置系统 566
17.3 增加代码到内核 572
17.4 内核配置简介 573
17.5 启动内核 575
第18章 根文件系统构建 576
18.1 init 进程 576
18.2 创建根文件系统 578
18.2.1 创建目录 578
18.2.2 创建设备文件 579
18.2.3 安装共享库 579
18.2.4 安装 busybox 580
18.2.5 创建配置文件 582
18.3 挂载根文件系统 583
18.3.1 使用网络文件系统 583
18.3.2 使用 Flash 文件系统 584
第6部分 应用编程 587
第19章 C++语言编程要点 588
19.1 布尔型数据 588
19.2 引用 588
19.3 类和对象 590
19.3.1 类和对象的定义 590
19.3.2 构造与析构 590
19.3.3 类的实现 591
19.3.4 访问对象 592
19.3.5 this 指针 592
19.3.6 new 和 delete 593
19.3.7 静态成员 594
19.3.8 只读成员 594
19.3.9 复制构造函数 595
19.3.10 友元 596
19.4 类的继承 597
19.4.1 继承的语法 597
19.4.2 继承方式 597
19.4.3 多重继承 598
19.5 函数和操作符重载 598
19.5.1 函数重载 599
19.5.2 操作符重载 601
19.6 覆盖与虚函数 604
19.6.1 覆盖 604
19.6.2 虚函数和多态 604
19.6.3 虚函数的实现 606
19.6.4 纯虚函数与抽象类 606
19.7 名字空间 607
19.8 模板 608
19.8.1 模板函数 608
19.8.2 模板类 609
19.9 异常处理 609
19.10 C 与 C++ 混合编程 611
第20章 嵌入式GUI编程 612
20.1 建立开发环境 612
20.2 简单的 Qt 应用程序 614
20.2.1 编写源代码 615
20.2.2 编译 615
20.2.3 工程文件 616
20.2.4 运行 617
20.2.5 移植到目标机 618
20.3 窗口布局 619
20.3.1 水平布局与垂直布局 619
20.3.2 栅格布局 622
20.4 Qt 对象 623
20.4.1 层次化管理 624
20.4.2 信号与槽 625
20.4.3 事件 628
20.4.4 定时器 631
20.5 使用 designer 633
20.5.1 窗体设计 633
20.5.2 代码编写 635
20.5.3 运行结果 639
20.6 Qt 常用类 640
20.6.1 QChar 640
20.6.2 QString 641
20.6.3 QPoint 647
20.6.4 QSize 648
20.6.5 QRect 649
20.6.6 QFont 650
20.6.7 QPixmap 651
20.6.8 QIcon 652
20.6.9 QWidget 654
20.6.10 QDialog 662
20.6.11 QLabel 664
20.6.12 QAbstractButton 665
20.6.13 QPushButton 667
20.6.14 QCheckBox 667
20.6.15 QRadioButton 668
20.6.16 QLineEdit 669
20.7 Qt 综合应用 670
20.7.1 软件设计 670
20.7.2 源码实现 673
20.7.3 运行结果 680
20.7.4 Qt 国际化编程 680
第21章 嵌入式数据库编程 684
21.1 基本 SQL 语句 684
21.1.1 数据库与表 684
21.1.2 创建和删除表 685
21.1.3 插入、修改及删除记录 685
21.1.4 条件表达式 686
21.1.5 数据库查询 687
21.2 建立 SQLite3 开发平台 688
21.3 SQLite3 编程接口 689
21.3.1 打开和关闭数据库 689
21.3.2 执行 SQL 语句 690
21.3.3 查询数据库 691
21.4 使用 SQLite3 工具 691
21.5 SQLite3 数据库应用实例 692
21.5.1 使用 sqlite3_exec 查询数据库 693
21.5.2 使用 sqlite3_get_table 查询数据库 694
第22章 产品开发实例:无线信息终端 696
22.1 总体架构 696
22.2 硬件设计 697
22.3 软件设计 698
22.3.1 总体框架 698
22.3.2 协议报文格式 699
22.4 应用软件 701
22.4.1 GUI 应用模块 701
22.4.2 通信协议模块 705
22.4.3 业务功能模块 710
22.4.4 使用多线程读取设备 713
22.4.5 模块集成 714
附录A 缩略语 716
……
序言 嵌入式软件开发是嵌入式产品开发的关键技术之一,特别是基于 Linux 操作系统的嵌入式软件开发,已经成为嵌入式开发的主要领域,它不但涉及 Linux 操作系统内核的移植、剪裁和优化,还包含大量外设接口、总线等的驱动程序开发、移植和优化,以及大量的面向具体应用需求和产品要求的图形化应用软件开发。
本书是一本面向产品开发基本职业技能的嵌入式 Linux 软件开发入门书籍,适合于下列读者群:
嵌入式行业新入职的软硬件开发人员。
原来从事单片机系统开发,有意转向 SoC(片上系统)开发的技术人员。
高等院校和各类职业教育院校信息技术相关专业高年级学生和研究生一年级学生。
嵌入式技术爱好者。
本书也可为嵌入式行业在职技术人员、高等院校和各类职业教育院校信息技术相关专业教师及实验辅导人员提供一定的技术参考。
本书结构
本书的结构安排反映了作者多年从事嵌入式软件开发的丰富经验和对嵌入式产品开发基本职业技能要求的深入理解,也参考了本书评审专家和友好读者的意见,同时考虑到了大多数读者的现实技术基础;当然,许多网络书店上大量读者对已出版的相关书籍所做的书评也给了作者非常有益的启示。本书整体结构实际上遵循了嵌入式产品软件开发的基本工作流程,从 Linux 操作系统下的基本编程和面向软件开发的 ARM 体系硬件平台关键特性及其编程应用,到 Linux 操作系统的内核编程及系统调用、内核移植与剪裁、驱动程序开发和移植,直至 Linux 环境下的图形化应用软件开发,涵盖了嵌入式产品软件开发工作的各种主要技术,并且最后通过一个实际项目开发综合再现了全书的核心内容。
总体内容
本书分为 6 个部分。
第 1 部分 嵌入式开发基础
第 1 章从产品、服务和应用的角度,概括地介绍嵌入式技术的主要市场应用、嵌入式产品开发中涉及到的关键技术,让读者基本了解掌握嵌入式软件开发技术后能够从事哪些产品的开发、能够在哪些行业寻找适合的工作岗位。第 2 章从嵌入式系统软件产品开发的角度,重点阐述 C 语言编程的核心要领,特别是在 Linux 和嵌入式 Linux 环境下 C 语言编程的关键技术。第 3 章引导读者利用开源软件,搭建嵌入式 Linux 软件开发的基本工作环境,主要是帮助读者在目前最流行的 Linux 发行版本——Debian 5.0 上顺利搭建一套实用性软件开发环境。
第 2 部分 ARM 架构与编程
这一部分包括第 4 章到第 7 章,主要是与硬件平台和 ARM CPU 基础指令有关的内容。第 4 章主要从软件开发编程的角度,详细介绍 ARM9 体系的核心架构、ARM 常用指令及其编程应用和 ARM 汇编语言程序开发方法。第 5 章主要是引导读者顺利完成一套嵌入式系统的固件(Firmware)开发环境的搭建和使用。第 6 章首先介绍目前市场上比较常见的三星 S3C2410A 嵌入式处理器的基本体系结构、工作原理,然后详细分析 S3C2410A 处理器主要接口和外设控制器的工作原理以及使用方式。第 7 章以目前嵌入式 Linux 系统中最常见的系统引导(bootloader)软件 U-boot 为例,帮助读者理解 bootloader 的工作机制、开发移植流程和系统应用。
第 3 部分 Linux 系统编程
这一部分包括第 8 章到第 12 章,是 Linux 软件开发的基础。第 8 章是 Linux 系统编程的基础,重点讨论 Linux 系统中程序的层次结构和内存映像、Linux 库函数的错误处理以及环境变量等。第 9 章主要讨论 Linux 的文件系统及其编程应用,由于 Linux 系统中很多设备的操作是以文件系统的方式处理的,因此文件系统在 Linux 中十分重要。第 10 章详细介绍操作系统的一个核心概念——进程,还涉及到进程的同步和进程间通信等基本编程应用。第 11 章讲解socket编程这一 Linux 网络通信应用的基础。第 12 章主要讲解多线程程序的编程开发。
第 4 部分 内核与驱动编程
这一部分包括第 13 章到第 16 章。第 13 章介绍实模式与保护模式、用户态与内核态等基本概念,同时还介绍了内核编程的一些特点,以一个简单的字符设备为例说明了驱动编程的一般方法。第 14 章主要讨论 Linux 编程的内核接口及其应用。第 15 章介绍 Linux 2.6 版本的设备模型和编程应用要点。第 16 章以输入设备驱动和 USB 设备驱动为例介绍 Linux 设备驱动程序开发的基本原理和方法。由于很多读者没有编程经验,或者以前主要从事应用编程,而从应用编程到内核和驱动编程无论是概念还是方法都需要一定的转变,这一部分的目的就是引导读者完成这一转变。
第 5 部分 嵌入式 Linux 系统构建
这一部分内容相对简单,作者认为绝大多数读者不会从事 Linux 内核的开发,而是有目的地使用或者剪裁稳定版本的 Linux 内核,因此在第 17 章中主要介绍 Linux 内核的配置原理与方法,并举例说明其中关键操作的基本流程,在第 18 章中则主要讲解并演示 Linux 根文件系统构建和移植的方法。通过这两章,读者基本可以掌握嵌入式 Linux 系统内核的配置方法,进行简单的内核移植,以及按应用要求构造根文件系统。
第 6 部分 应用编程
这一部分包括第 19 章到第 22 章,主要目的是帮助读者熟悉针对诸如智能手机、自助终端等终端设备类功能需求的应用开发。第 19 章从开发编程的角度介绍 C++ 特有的概念和用法,适合那些对 C 语言有一定基础的读者快速进入 C++ 编程领域。第 20 章以目前嵌入式行业最常见的开发环境——Qt 4.5.2 的开源版本为例,介绍如何使用 Qt 平台进行嵌入式 GUI 的开发。第 21 章则简单介绍最常用的嵌入式数据库 SQLite 的应用开发方法。第 22 章通过一个实际产品开发中的典型项目案例,将本书核心内容贯穿于一体,使读者有机会全方位地了解嵌入式产品的软件开发流程和实施方法。
主要特色
本书的作者长期从事嵌入式软件开发工作,本书既是他们经验和教训的汇总,也是他们对嵌入式产品软件开发的理解。书中内容取舍与结构安排均面向嵌入式软件开发的实际需要;书中的代码均经过编译和运行,进行了严格的测试,部分代码来自实际产品开发工作并且经过终端产品的长期应用考验;Linux 内核版本选择的是初稿完成时的最新内核稳定版本——Linux 2.6.30;应用开发环境则选择的是最新的跨操作系统开发平台——Qt Embedded 4.5.1,特别是本书支持网站上提供的 Qt Embedded 4.5.1 是本书初稿完成时全球唯一的支持简体中文处理的版本(这个版本也是本书几位作者移植成功的)。
本书的支持网站是 http://www.cjhytec.com,提供例程源码的下载。
本书作者
本书由何永琪教授主编,杨红涛负责编写第4章到第12章、第17章、第18章、第21章和第22章,焦悦光负责编写第2章、第3章、第13章到第16章、第19章和第20章,戴无惧负责编写前言和第1章并起草全书大纲;邓莹莹为第19章和第20章提供部分章节初稿,袁裕芳、张欣然和朱子豪为第20章、第21章和第22章提供部分章节初稿,周聪、林胜朋和王松为第6章和第22章提供部分章节初稿,吴龙和李英良为第11章、第15章和第16章提供部分章节初稿,魏大庆和江中舟负责全书图例绘制。焦悦光最后统稿全书。