资源说明:第1章 Linux快速入门 1
1.1 嵌入式Linux基础 1
1.1.1 Linux发展概述 1
1.1.2 Linux作为嵌入式操作系统的优势 2
1.1.3 Linux发行版本 3
1.1.4 如何学习Linux 4
1.2 Linux安装 5
1.2.1 基础概念 5
1.2.2 硬件需求 7
1.2.3 安装准备 7
1.2.4 安装过程 8
1.3 Linux文件及文件系统 11
1.3.1 文件类型及文件属性 11
1.3.2 文件系统类型介绍 13
1.3.3 Linux目录结构 14
1.4 实验内容——安装Linux操作系统 17
本章小结 17
思考与练习 18
第2章 Linux基础命令 19
2.1 Linux常用操作命令 19
2.1.1 用户系统相关命令 20
2.1.2 文件目录相关命令 27
2.1.3 压缩打包相关命令 38
2.1.4 比较合并文件相关命令 40
2.1.5 网络相关命令 45
2.2 Linux启动过程详解 50
2.2.1 概述 51
2.2.2 内核引导阶段 51
2.2.3 init阶段 52
2.3 Linux系统服务 54
2.3.1 独立运行的服务 55
2.3.2 xinetd设定的服务 56
2.3.3 设定服务命令常用方法 56
2.4 实验内容 57
2.4.1 在Linux下解压常见软件 57
2.4.2 定制Linux系统服务 58
本章小结 60
思考与练习 60
第3章 Linux下的C编程基础 61
3.1 Linux下C语言编程概述 61
3.1.1 C语言简单回顾 61
3.1.2 Linux下C语言编程环境概述 62
3.2 进入Vi 63
3.2.1 Vi的模式 63
3.2.2 Vi的基本流程 63
3.2.3 Vi的各模式功能键 65
3.3 初探Emacs 66
3.3.1 Emacs的基本操作 67
3.3.2 Emacs的编译概述 70
3.4 Gcc编译器 71
3.4.1 Gcc编译流程解析 71
3.4.2 Gcc编译选项分析 74
3.5 Gdb调试器 77
3.5.1 Gdb使用流程 78
3.5.2 Gdb基本命令 81
3.6 Make工程管理器 86
3.6.1 Makefile基本结构 86
3.6.2 Makefile变量 87
3.6.3 Makefile规则 90
3.6.4 Make管理器的使用 91
3.7 使用autotools 92
3.7.1 autotools使用流程 92
3.7.2 使用autotools所生成的Makefile 96
3.8 实验内容 98
3.8.1 Vi使用练习 98
3.8.2 用Gdb调试有问题的程序 99
3.8.3 编写包含多文件的Makefile 101
3.8.4 使用autotools生成包含多文件的Makefile 103
本章小结 105
思考与练习 105
第4章 嵌入式系统基础 106
4.1 嵌入式系统概述 106
4.1.1 嵌入式系统简介 106
4.1.2 嵌入式系统发展历史 107
4.1.3 嵌入式系统的特点 108
4.1.4 嵌入式系统的体系结构 108
4.1.5 几种主流嵌入式操作系统分析 109
4.2 ARM处理器硬件开发平台 111
4.2.1 ARM处理器简介 111
4.2.2 ARM体系结构简介 113
4.2.3 ARM9体系结构 113
4.2.4 S3C2410处理器详解 116
4.3 嵌入式软件开发流程 121
4.3.1 嵌入式系统开发概述 121
4.3.2 嵌入式软件开发概述 122
4.4 实验内容——使用JTAG烧写NAND Flash 128
本章小结 131
思考与练习 132
第5章 嵌入式Linux开发环境的搭建 133
5.1 嵌入式开发环境的搭建 133
5.1.1 嵌入式交叉编译环境的搭建 133
5.1.2 超级终端和Minicom配置及使用 135
5.1.3 下载映像到开发板 142
5.1.4 编译嵌入式Linux内核 145
5.1.5 Linux内核目录结构 149
5.1.6 制作文件系统 149
5.2 U-Boot移植 153
5.2.1 Bootloader介绍 153
5.2.2 U-Boot概述 155
5.2.3 U-Boot源码导读 156
5.2.4 U-Boot移植主要步骤 163
5.2.5 U-Boot常见命令 164
5.3 实验内容——移植Linux内核 164
本章小结 165
思考与练习 165
第6章 文件I/O编程 166
6.1 Linux系统调用及用户编程接口(API) 166
6.1.1 系统调用 166
6.1.2 用户编程接口(API) 167
6.1.3 系统命令 167
6.2 Linux中文件及文件描述符概述 168
6.3 不带缓存的文件I/O操作 168
6.3.1 open和close 168
6.3.2 read、write和lseek 170
6.3.3 fcntl 173
6.3.4 select 178
6.4 嵌入式Linux串口应用开发 183
6.4.1 串口概述 183
6.4.2 串口设置详解 184
6.4.3 串口使用详解 191
6.5 标准I/O开发 194
6.5.1 打开和关闭文件 194
6.5.2 文件读写 197
6.5.3 输入输出 198
6.6 实验内容 201
6.6.1 文件读写及上锁 201
6.6.2 多路复用式串口读写 204
本章小结 207
思考与练习 207
第7章 进程控制开发 208
7.1 Linux下进程概述 208
7.1.1 进程相关基本概念 208
7.1.2 Linux下的进程结构 210
7.1.3 Linux下进程的模式和类型 210
7.1.4 Linux下的进程管理 211
7.2 Linux进程控制编程 212
7.3 Linux守护进程 224
7.3.1 守护进程概述 224
7.3.2 编写守护进程 224
7.3.3 守护进程的出错处理 229
7.4 实验内容 232
7.4.1 编写多进程程序 232
7.4.2 编写守护进程 235
本章小结 238
思考与练习 239
第8章 进程间通信 240
8.1 Linux下进程间通信概述 240
8.2 管道通信 241
8.2.1 管道概述 241
8.2.2 管道创建与关闭 242
8.2.3 管道读写 244
8.2.4 标准流管道 246
8.2.5 FIFO 249
8.3 信号通信 253
8.3.1 信号概述 253
8.3.2 信号发送与捕捉 255
8.3.3 信号的处理 258
8.4 共享内存 264
8.4.1 共享内存概述 264
8.4.2 共享内存实现 265
8.5 消息队列 267
8.5.1 消息队列概述 267
8.5.2 消息队列实现 268
8.6 实验内容 272
8.6.1 管道通信实验 272
8.6.2 共享内存实验 275
本章小结 277
思考与练习 278
第9章 多线程编程 279
9.1 Linux下线程概述 279
9.1.1 线程概述 279
9.1.2 线程分类 280
9.1.3 Linux线程技术的发展 280
9.2 Linux线程实现 281
9.2.1 线程基本操作 281
9.2.2 线程访问控制 288
9.3 实验内容——“生产者消费者”实验 298
本章小结 302
思考与练习 303
第10章 嵌入式Linux网络编程 304
10.1 TCP/IP协议概述 304
10.1.1 OSI参考模型及TCP/IP参考模型 304
10.1.2 TCP/IP协议族 305
10.1.3 TCP和UDP 306
10.2 网络基础编程 308
10.2.1 socket概述 308
10.2.2 地址及顺序处理 309
10.2.3 socket基础编程 314
10.3 网络高级编程 322
10.4 ping源码分析 326
10.4.1 ping简介 326
10.4.2 ping源码分析 327
10.5 实验内容——NTP协议实现 345
本章小结 352
思考与练习 352
第11章 嵌入式Linux设备驱动开发 353
11.1 设备驱动概述 353
11.1.1 设备驱动简介及驱动模块 353
11.1.2 设备文件分类 354
11.1.3 设备号 355
11.1.4 驱动层次结构 355
11.1.5 设备驱动程序与外界的接口 355
11.1.6 设备驱动程序的特点 356
11.2 字符设备驱动编写 356
11.3 LCD驱动编写实例 363
11.3.1 LCD工作原理 363
11.3.2 LCD驱动实例 365
11.4 块设备驱动编写 374
11.4.1 块设备驱动程序描述符 374
11.4.2 块设备驱动编写流程 375
11.5 中断编程 381
11.6 键盘驱动实现 382
11.6.1 键盘工作原理 382
11.6.2 键盘驱动综述 383
11.6.3 键盘驱动流程 384
11.7 实验内容——skull驱动 394
本章小结 398
思考与练习 399
第12章 Qt图形编程 400
12.1 嵌入式GUI简介 400
12.1.1 Qt/Embedded 401
12.1.2 MiniGUI 401
12.1.3 Microwindows、Tiny X等 402
12.2 Qt/Embedded开发入门 402
12.2.1 Qt/Embedded介绍 402
12.2.2 Qt/Embedded信号和插槽机制 405
12.2.3 搭建Qt/Embedded开发环境 409
12.2.4 Qt/Embedded窗口部件 410
12.2.5 Qt/Embedded图形界面编程 414
12.2.6 Qt/Embedded对话框设计 416
12.3 实验内容——使用Qt编写“Hello,World”程序 420
本章小结 428
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。