当前位置:首页 > 工业技术
嵌入式LINUX应用开发详解
嵌入式LINUX应用开发详解

嵌入式LINUX应用开发详解PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:冼进主编;许振山,刘峥嵘,张智超,骆飞,靳大江等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:9787121051883
  • 页数:433 页
图书介绍:本书立足于嵌入式Linux平台,侧重于实际开发应用,是一本结合嵌入式Linux技术最新发展潮流和编者多年开发经验,精心编写的嵌入式Linux开发用书。主要介绍包括嵌入式Linux开发环境的配置、uClinux操作系统相关的知识、串口通信、LED、LCD显示器、USB驱动、PCI驱动、嵌入式文件系统和集成开发调试环境、GUI编程、嵌入式数据库等内容。
《嵌入式LINUX应用开发详解》目录

第1篇 基础篇 2

第1章 嵌入式Linux基础 2

1.1 嵌入式系统 2

1.1.1 嵌入式系统的应用 2

1.1.2 嵌入式系统的特点 4

1.2 实时与实时系统 5

1.2.1 实时与实时系统的基本概念 5

1.2.2 目前应用广泛的嵌入式实时操作系统 8

1.3 嵌入式Linux 10

1.3.1 从Linux到嵌入式Linux 10

1.3.2 嵌入式Linux的特点 11

1.3.3 嵌入式Linux发展现状 13

1.4 主流嵌入式芯片简介 15

1.4.1 Intel公司x86体系结构嵌入式芯片简介 16

1.4.2 Motorola公司嵌入式芯片简介 17

1.4.3 ARM公司嵌入式芯片简介 18

1.5 小结 18

1.6 思考题 19

第2章 开发嵌入式Linux应用软件 20

2.1 建立嵌入式开发平台 20

2.1.1 嵌入式开发平台简介 20

2.1.2 uClinux简介 21

2.1.3 uCsimm 23

2.1.4 建立uClinux开发平台 23

2.2 嵌入式Linux应用软件开发工具 28

2.2.1 使用gcc编译嵌入式C应用程序 28

2.2.2 编写Makefile 30

2.2.3 调试工具GDB 34

2.3 嵌入式Linux应用软件开发流程 37

2.3.1 对需求进行分析 37

2.3.2 任务和模块的划分 38

2.3.3 生成代码 40

2.3.4 调试代码 40

2.3.5 固化运行 41

2.4 一个简单的应用程序——Hello World 42

2.5 小结 48

2.6 思考题 48

第2篇 系统篇 50

第3章 任务管理 50

3.1 任务概述 50

3.1.1 进程和线程 51

3.1.2 任务的数据结构表示 52

3.1.3 实时任务 52

3.1.4 嵌入式Linux中的进程 52

3.2 任务状态的转变 52

3.2.1 基本任务状态 52

3.2.2 Linux的任务状态 53

3.3 任务调度 58

3.3.1 调度目标 58

3.3.2 调度方法分类 61

3.3.3 经典常用实时调度算法 63

3.3.4 多处理器调度算法 68

3.3.5 Linux进程调度 69

3.4 常用任务管理API 78

3.5 关于任务的实例 84

3.6 小结 87

3.7 思考题 87

第4章 任务的同步与通信 88

4.1 多任务系统 88

4.2 任务间的同步 89

4.2.1 几个重要概念 89

4.2.2 信号量 95

4.3 任务间的通信 97

4.4 嵌入式Linux中的任务间同步与通信 98

4.4.1 Linux中的信号 98

4.4.2 Linux中的管道 108

4.4.3 先进先出文件FIFO 110

4.4.4 System V IPC机制 112

4.5 小结 122

4.6 思考题 122

第5章 存储器管理 123

5.1 存储器管理概述 123

5.1.1 基本概念 124

5.1.2 内存管理的分类 127

5.1.3 早期连续内存分配 127

5.1.4 基于段、页的存储管理 129

5.1.5 虚拟存储器管理 134

5.2 Linux存储器管理 137

5.2.1 物理内存管理 138

5.2.2 虚拟内存管理 140

5.3 小结 154

5.4 思考题 154

第6章 中断处理与时钟管理 155

6.1 中断概述 155

6.1.1 中断源 156

6.1.2 中断类型号、中断向量表和中断描述符表 156

6.1.3 中断服务程序及其入口地址 157

6.1.4 中断优先级和中断嵌套 158

6.2 中断机制 158

6.2.1 中断过程 158

6.2.2 中断服务程序设计 160

6.3 使用中断驱动UART 161

6.3.1 UART基本概念 161

6.3.2 UART驱动程序的实现 163

6.4 嵌入式Linux时钟管理 167

6.4.1 时间日期管理 167

6.4.2 用户任务中的定时器 171

6.4.3 内核中的时钟管理 174

6.5 小结 176

6.6 思考题 176

第7章 嵌入式Linux网络编程 177

7.1 嵌入式Linux网络体系结构 177

7.1.1 TCP/IP网络简介 178

7.1.2 嵌入式Linux中TCP/IP网络结构 181

7.2 嵌入式Linux环境下的套接字(socket)编程 182

7.2.1 套接字接口 182

7.2.2 socket编程基础 185

7.2.3 socket通信常用API函数 186

7.2.4 数据流通信和数据报通信 191

7.2.5 socket编程高级特性 198

7.3 网络编程实例——使用socket编写代理服务器 201

7.3.1 功能说明 202

7.3.2 代码 202

7.3.3 代码分析 207

7.4 小结 212

7.5 思考题 212

第3篇 驱动开发篇 214

第8章 嵌入式Linux下串口通信 214

8.1 串行I/O的基本概念 214

8.1.1 同步通信与异步通信 214

8.1.2 串口传输速率与流控 216

8.1.3 差错控制 217

8.1.4 DTE和DCE通信过程 219

8.1.5 RS-232C串口规范简介 220

8.2 编写串口通信程序 223

8.2.1 嵌入式Linux驱动程序简介 223

8.2.2 串口访问函数 229

8.2.3 设置串口属性 231

8.3 嵌入式Linux串口通信实例 232

8.4 小结 240

8.5 思考题 240

第9章 用LED和LCD做系统输出 242

9.1 在嵌入式Linux系统中扩展LED输出 242

9.1.1 LED显示输出的原理和结构 243

9.1.2 LED显示方式 244

9.1.3 在嵌入式Linux系统中使用LED显示器 246

9.2 LCD显示器的使用 250

9.2.1 LCD简介 250

9.2.2 在嵌入式Linux中驱动LCD 254

9.3 在嵌入式Linux中使用LCD 257

9.3.1 EZ328对LCD的支持 258

9.3.2 uClinux对LCD显示器的支持 259

9.3.3 图形API使用实例 263

9.4 小结 267

9.5 思考题 268

第10章 USB设备驱动程序开发 269

10.1 USB体系结构 269

10.1.1 USB系统的描述 270

10.1.2 电气特性 271

10.1.3 电源分配与管理 272

10.2 USB通信协议 272

10.2.1 USB数据流模型 272

10.2.2 USB数据单元 273

10.2.3 USB设备请求 277

10.2.4 USB设备枚举 278

10.3 USB设备驱动程序设计 278

10.3.1 USB设备驱动程序分类 278

10.3.2 主机端设备驱动程序分析 280

10.3.3 设备端USB驱动程序分析 284

10.4 小结 295

10.5 思考题 295

第11章 在嵌入式Linux系统中扩展PCI设备 296

11.1 PCI总线规范 296

11.1.1 PCI总线规范简介 297

11.1.2 PCI配置空间 301

11.2 嵌入式Linux对PCI设备的支持 308

11.2.1 扫描PCI设备 308

11.2.2 为PCI设备分配资源 313

11.2.3 对PCI配置空间的访问 316

11.3 编写嵌入式Linux下PCI驱动程序 317

11.3.1 编写PCI驱动程序 317

11.3.2 嵌入式Linux下PCI驱动实例——NE2000网卡驱动程序 322

11.4 小结 326

11.5 思考题 327

第12章 嵌入式文件系统与存储技术 328

12.1 嵌入式文件系统概述 328

12.1.1 嵌入式文件系统的功能和特性 329

12.1.2 Linux操作系统支持的常见文件系统 329

12.2 Flash存储技术 331

12.2.1 Flash的类型 331

12.2.2 Flash的技术特点 332

12.2.3 NOR Flash与NAND Flash的区别 332

12.2.4 Flash存储管理系统 334

12.3 uClinux块设备驱动程序 335

12.3.1 块设备驱动种类 335

12.3.2 MTD驱动程序 335

12.3.3 基于MTD驱动程序的文件系统 337

12.4 NOR Flash与JFFS2文件系统 338

12.4.1 JFFS2原理 339

12.4.2 JFFS2文件系统在uClinux中的实现 345

12.5 Nand Flash与YAFFS文件系统 350

12.5.1 YAFFS原理 350

12.5.2 YAFFS文件系统在uClinux中的实现 354

12.6 小结 356

12.7 思考题 356

第13章 嵌入式系统集成与调试 357

13.1 建立高效开发环境 357

13.1.1 NFS开发环境 358

13.1.2 主机端环境配置 358

13.1.3 目标板设置 360

13.2 uClinux应用程序调试 362

13.2.1 嵌入式应用程序调试方法 363

13.2.2 GDB调试技术 367

13.2.3 建立GDB+gdbserver应用程序调试环境 370

13.3 uClinux内核调试 373

13.4 小结 375

13.5 思考题 376

第4篇 应用篇 378

第14章 图形界面应用程序开发 378

14.1 嵌入式GUI特点及种类 378

14.2 MiniGUI简介 379

14.2.1 MiniGUI是什么 379

14.2.2 MiniGUI特点及优势 380

14.3 MiniGUI程序框架及示例 380

14.3.1 主函数MiniGUIMain() 381

14.3.2 消息处理函数 382

14.3.3 第一个MiniGUI程序 382

14.4 MiniGUI中的窗口与消息 383

14.4.1 窗口的建立与销毁 383

14.4.2 消息与消息循环 384

14.4.3 几个重要的消息 386

14.5 键盘与鼠标 387

14.5.1 键盘消息与字符消息 387

14.5.2 鼠标消息 388

14.6 绘图工具与图形设备接口 389

14.6.1 设备描述表 389

14.6.2 画点与画线 391

14.6.3 封闭曲线及区域填充 392

14.6.4 字体与文字输出 393

14.7 MiniGUI中的常用控件 394

14.7.1 静态控件与按钮控件 396

14.7.2 列表框 399

14.7.3 编辑控件 401

14.7.4 工具栏控件 403

14.7.5 控件子类化 404

14.7.6 自定义控件 406

14.8 对话框 407

14.8.1 创建模式对话框 407

14.8.2 创建非模式对话框 409

14.8.3 带属性页的对话框 409

14.9 菜单的使用 414

14.9.1 创建菜单 414

14.9.2 处理菜单消息 417

14.9.3 更改菜单项状态 417

14.10 小结 418

14.11 思考题 418

第15章 嵌入式数据库 419

15.1 嵌入式系统中的数据库 419

15.1.1 嵌入式数据库特点 419

15.1.2 嵌入式数据库现状与发展 420

15.2 mSQL简介 420

15.3 在Linux上安装和配置mSQL 421

15.3.1 mSQL的安装 421

15.3.2 mSQL系统配置 421

15.4 mSQL工具程序 424

15.5 mSQL的C API函数 427

15.6 mSQL嵌入式数据库应用实例分析 430

15.7 小结 432

15.8 思考题 432

参考文献 433

返回顶部