《嵌入式Linux开发基础》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:谢川主编
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2011
  • ISBN:9787113129507
  • 页数:338 页
图书介绍:本书针对在嵌入式市场上颇具竞争力的S3C2410X处理器和开放源码的linux2.6操作系统,介绍嵌入式Linux开发技术的基础知识。主要内容包括:嵌入式系统基本概念、ARM体系结构、Linux操作及编程基础、嵌入式 Linux开发环境搭建、驱动开发、多进程与多线程编程、网络编程、嵌入式GUI图形用户界面设计等,在讲述各个操作和编程环节时配备大量的实例程序以增进读者对所学知识的理解和应用能力。

第1章 嵌入式系统概述 1

1.1 嵌入式系统简介 1

1.1.1 嵌入式系统发展简史 1

1.1.2 嵌入式系统的定义 3

1.1.3 嵌入式系统的特点 3

1.1.4 嵌入式系统的分类 4

1.1.5 嵌入式系统的应用范围 4

1.2 嵌入式系统的组成结构 7

1.2.1 嵌入式系统的硬件组成结构 8

1.2.2 嵌入式系统的软件层次结构 11

1.2.3 启动程序BootLoader 13

1.2.4 嵌入式操作系统简介 14

1.3 嵌入式系统开发概述 17

1.3.1 嵌入式开发考虑的要素 17

1.3.2 软硬件协同设计 17

1.3.3 嵌入式系统开发的基本流程 18

1.4 嵌入式系统的发展趋势 21

思考与练习 22

第2章 ARM处理器概述 23

2.1 ARM的概念 23

2.2 ARM体系结构的分类版本及扩展技术 24

2.2.1 ARM处理器的体系结构分类版本 24

2.2.2 ARM体系结构的扩展 25

2.3 ARM微处理器系列 27

2.3.1 ARM7微处理器系列 27

2.3.2 ARM9微处理器系列 28

2.3.3 ARM9E微处理器系列 28

2.3.4 ARM10E微处理器系列 29

2.3.5 ARM11微处理器系列 30

2.3.6 Cortex微处理器系列 31

2.3.7 SecurCore系列 33

2.3.8 Intel的Xscale和StrongARM 34

2.4 ARM处理器的工作状态 34

2.5 ARM处理器的存储格式 35

2.6 ARM处理器的工作模式 35

2.7 ARM处理器的应用领域和选型 36

2.7.1 应用领域 36

2.7.2 应用选型 37

2.8 S3C2410A处理器简介 38

2.8.1 S3C2410A处理器概述 38

2.8.2 Magic ARM2410开发板 43

思考与练习 46

第3章 Linux系统概述 47

3.1 Linux的历史与现状 47

3.1.1 Linux的发展概述 47

3.1.2 Linux作为嵌入式操作系统的优势 51

3.1.3 Linux发行版本 52

3.1.4 内核版本号与发行版本号 54

3.2 Linux安装 54

3.2.1 Linux安装基础知识 54

3.2.2 安装前的准备工作 56

3.2.3 RHEL 5.5安装过程 57

3.3 Linux文件及文件系统 67

3.3.1 文件类型及文件属性 67

3.3.2 文件系统类型介绍 69

3.3.3 Linux目录简介 70

3.4 Linux启动过程 71

3.4.1 概述 71

3.4.2 内核引导阶段 72

3.4.3 init阶段 72

思考与练习 73

第4章 Linux命令 74

4.1 初识shell 74

4.2 Linux常用命令 75

4.2.1 用户系统相关命令 75

4.2.2 文件目录相关命令 80

4.2.3 常用的网络命令 88

4.2.4 比较与合并文件相关命令 94

4.2.5 压缩打包相关命令 97

思考与练习 100

第5章 Linux编程基础 101

5.1 vi编辑器 101

5.1.1 vi简介 101

5.1.2 vi基本编辑命令 103

5.2 GCC编译器 105

5.2.1 GCC编译过程 105

5.2.2 GCC编译选项介绍 108

5.3 GDB调试器 112

5.3.1 GDB使用流程 112

5.3.2 GDB基本命令 115

5.4 make工程管理器 118

5.4.1 Makefile文件格式 119

5.4.2 Makefile文件组成 120

5.4.3 make管理器选项 125

5.4.4 使用autoTools 125

5.5 Linux shell编程 129

5.5.1 shell变量 129

5.5.2 shell测试命令 131

5.5.3 shell流控制结构 133

5.5.4 shell函数 137

思考与练习 138

第6章 构建嵌入式Linux开发平台 140

6.1 嵌入式交叉编译环境搭建 140

6.2 U-Boot移植 142

6.2.1 引导系统简介 142

6.2.2 U-Boot概述 143

6.2.3 U-Boot移植过程 145

6.3 Linux内核移植 155

6.3.1 概述 155

6.3.2 Linux内核移植过程 156

6.4 根文件系统移植 161

6.4.1 根文件系统概述 162

6.4.2 BusyBox根文件系统移植过程 163

思考与练习 168

第7章 嵌入式Linux设备驱动开发 169

7.1 设备驱动概述 169

7.1.1 驱动模块 169

7.1.2 设备文件分类 170

7.1.3 设备号 171

7.1.4 设备驱动层次结构 171

7.1.5 设备驱动程序与外界接口 171

7.1.6 设备驱动特点 172

7.2 Linux字符设备驱动 172

7.2.1 cdev结构体 173

7.2.2 分配和释放设备号 174

7.2.3 file_operations结构体 174

7.2.4 字符设备驱动程序组成 178

7.3 触摸屏设备驱动实例介绍 181

7.3.1 S3C2410X触摸屏工作原理 181

7.3.2 触摸屏设备驱动中的数据结构 183

7.3.3 触摸屏设备驱动中的硬件控制 184

7.3.4 触摸屏驱动模块加载和卸载函数 184

7.3.5 触摸屏驱动中断、定时器处理程序 185

7.3.6 触摸屏驱动的打开、释放函数 187

7.3.7 触摸屏驱动的读函数 188

7.3.8 触摸屏驱动的轮询与异步通知函数 188

7.4 块设备驱动 189

7.4.1 字符设备与块设备I/O操作的区别 189

7.4.2 block_device_operations结构体 189

7.4.3 gendisk结构体 190

7.4.4 request和bio结构体 191

7.4.5 块设备驱动的注册与注销 197

7.4.6 块设备驱动模块的加载与卸载 197

7.4.7 块设备驱动的打开与释放 199

7.4.8 块设备驱动的I/O控制 199

7.4.9 块设备驱动的I/O请求处理 200

7.5 网络设备驱动 203

7.5.1 Linux网络设备驱动的结构 203

7.5.2 网络设备驱动的注册与注销 211

7.5.3 网络设备的初始化 212

7.5.4 网络设备的打开与释放 213

7.5.5 数据发送流程 214

7.5.6 数据接收流程 215

7.5.7 网络连接状态 217

7.5.8 参数设置和数据统计 219

思考与练习 221

第8章 文件I/O编程 222

8.1 Linux系统调用及用户编程接口 222

8.2 Linux文件及文件描述符 223

8.3 不带缓存的文件I/O操作 224

8.3.1 open()和close()函数 224

8.3.2 read()、write()和lseek()函数 226

8.3.3 fcntl()函数 228

8.4 嵌入式Linux设备文件I/O操作实例 231

8.4.1 串口设备概述 231

8.4.2 串口设备设置 232

8.4.3 串口设备的使用 235

思考与练习 237

第9章 多进程编程 238

9.1 Linux进程概述 238

9.1.1 Linux进程相关概念 238

9.1.2 Linux进程结构与模式 240

9.1.3 Linux进程控制 241

9.2 Linux进程的基本操作 241

9.2.1 创建进程fork()函数 241

9.2.2 系统调用exec()函数族 243

9.2.3 系统调用exit()和_exit()函数 245

9.2.4 系统调用wait()和waitpid()函数 246

9.2.5 系统调用sleep()函数 248

9.3 Linux进程间通信 248

9.3.1 管道通信 249

9.3.2 消息队列 255

9.3.3 信号量 260

9.3.4 共享内存 264

思考与练习 268

第10章 多线程编程 269

10.1 Linux线程概述 269

10.2 Linux线程编程实现 270

10.2.1 Linux基本线程相关函数 270

10.2.2 Linux线程互斥锁 273

10.2.3 Linux线程信号量 276

思考与练习 279

第11章 网络编程 280

11.1 TCP/IP协议概述 280

11.1.1 TCP/IP协议簇 281

11.1.2 UDP与TCP简介 282

11.2 socket 287

11.3 Linux网络通信辅助函数介绍 288

11.4 socket基础编程 290

11.4.1 socket()函数 290

11.4.2 bind()函数 291

11.4.3 listen()函数 291

11.4.4 accept()函数 291

11.4.5 connect()函数 292

11.4.6 send()和recv()函数 292

11.4.7 sendto()和recvfrom()函数 293

11.4.8 网络通信编程实例 294

思考与练习 297

第12章 嵌入式图形用户界面设计 298

12.1 嵌入式GUI简介 298

12.1.1 嵌入式GUI的特点 298

12.1.2 嵌入式GUI的种类 298

12.2 Qt介绍 299

12.2.1 Qt/Embedded简介 300

12.2.2 建立Qt开发环境 301

12.2.3 Qt designer主界面 303

12.3 Qt4编程 304

12.3.1 信号和槽 304

12.3.2 hello窗口实例 306

12.3.3 控件的几何排列实例 308

12.3.4 对话框使用实例 310

12.3.5 主窗口使用实例 313

12.3.6 Qt designer图形设计器使用实例 319

12.4 Qt4/Embedded的嵌入式应用 322

12.4.1 建立Qt4/Embedded开发环境 322

12.4.2 Qt4/Embedded程序实例 324

思考与练习 325

第13章 电子菜单设计 326

13.1 功能描述 326

13.2 系统设计 327

13.2.1 开发环境 328

13.2.2 系统功能模块设计 328

13.2.3 项目小结 335

参考文献 336