《基于 ARM9 的嵌入式 Linux 开发技术》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:李新峰,何广生,赵秀文编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121071775
  • 页数:377 页
图书介绍:本书根据当前嵌入式开发的热点和实际应用的需要,从基础知识和关键知识入手,突出全面性和实用性,全面介绍了基于ARM9硬件平台的嵌入式Linux开发技术,主要包括ARM9硬件平台设计、Linux操作系统、驱动开发、应用程序开发,以及软硬结合的应用系统设计,共分16章。随书附带的光盘中不仅包含开发的源代码程序,还有基本的硬件原理图,读者既可以作为学习时的参考资料,也可以直接将其应用于实际的项目开发。

第1章 嵌入式系统概述 1

1.1什么是嵌入式系统 1

1.1.1嵌入式系统的历史与现状 1

1.1.2嵌入式计算机的分类 4

1.1.3嵌入式系统的一些基本概念 6

1.1.4嵌入式系统的特点 6

1.2嵌入式系统的设计方法 7

1.2.1嵌入式系统体系结构 7

1.2.2嵌入式系统的开发环境 8

1.2.3嵌入式系统的开发流程 8

1.3嵌入式系统应用领域与发展趋势 9

1.3.1嵌入式系统的应用领域 10

1.3.2嵌入式系统发展趋势 11

1.4本章小结 12

第2章 ARM处理器及S3C2410基本外围电路 13

2.1 ARM处理器概述 13

2.1.1 ARM公司简介 13

2.1.2 ARM微处理器特点 14

2.1.3 ARM处理器系列 14

2.2 ARM体系结构 17

2.2.1硬件构架 17

2.2.2 RISC指令体系 18

2.3 ARM开发环境和调试系统 19

2.3.1 ARM开发环境的组成 20

2.3.2开发调试方法简介 20

2.3.3 ADS集成开发软件介绍 21

2.4 S3C2410简介 27

2.5 S3C2410基本外围电路 28

2.5.1 S3C2410芯片各引脚意义 28

2.5.2电源和复位电路 34

2.5.3晶振及JTAG电路 35

2.5.4存储器电路 36

2.5.5 Nor-Flash/Nand-Flash电路 40

2.5.6串口及USB接口电路 42

2.6本章小结 43

第3章 嵌入式Linux系统 44

3.1嵌入式操作系统概述 44

3.1.1嵌入式操作系统发展历史 44

3.1.2选择嵌入式操作系统的原则 45

3.1.3典型的嵌入式操作系统 46

3.2 Linux介绍 48

3.2.1 Linux的特性 48

3.2.2 Linux的内核版本 50

3.2.3 Linux操作系统内核组成 51

3.2.4 Linux系统数据结构 52

3.2.5 Linux内核源码结构 53

3.2.6 Linux操作系统的其他部分 55

3.2.7 Linux作为嵌入式操作系统的优缺点 56

3.3嵌入式Linux简介 57

3.3.1常用的嵌入式Linux系统 58

3.3.2嵌入式Linux的基本要素 59

3.3.3嵌入式Linux开发步骤 59

3.4本章小结 61

第4章 嵌入式开发环境的建立 62

4.1 Linux操作系统的安装 62

4.1.1系统安装程序的获取 62

4.1.2对开发PC的性能要求 63

4.1.3 Redhat Linux Fedora的安装 63

4.1.4 Linux系统运行 65

4.2开发环境配置 65

4.2.1串口配置方法 65

4.2.2网口配置方法 67

4.3立交叉编译环境 72

4.3.1交叉编译工具下载和版本选择 72

4.3.2准备资源文件 73

4.3.3建立脚本文件 73

4.3.4建立配置文件 74

4.3.5执行脚本 74

4.3.6添加环境变量 75

4.3.7测试交叉编译工具链 76

4.4 Makefile和Make 76

4.4.1 Makefile 76

4.4.2 Make用法 78

4.5镜像文件烧写 79

4.5.1将应用程序加入到Linux系统 79

4.5.2让应用程序自动启动 80

4.6本章小结 81

第5章 BootLoader 82

5.1 BootLoader简介 82

5.1.1 BootLoader的作用 82

5.1.2 BootLoader在嵌入式系统中的位置 83

5.1.3 BootLoader程序结构 83

5.1.4 BootLoader的操作模式 84

5.2常用嵌入式BootLoader介绍 84

5.2.1 VNI 84

5.2.2 U-Boot 85

5.2.3 RedBoot 85

5.2.4 ARMBoot 86

5.2.5 Blob 86

5.2.6 DIY 86

5.3 BootLoader程序编写 87

5.3.1硬件环境介绍 87

5.3.2软件环境介绍 88

5.3.3 BootLoader的stage1 89

5.3.4 BootLoader的stage2 97

5.4 BootLoader程序调试和烧写 101

5.5本章小结 102

第6章 Linux内核向ARM平台的移植 103

6.1 Linux内核移植概述 103

6.2修改内核代码 104

6.2.1选定处理器支持 104

6.2.2修改与Flash存储器相关的内核代码 105

6.3配置内核选项 108

6.3.1内核配置系统原理 108

6.3.2内核配置选项说明 110

6.4 Linux 2.6内核移植实例 113

6.5本章小结 116

第7章 嵌入式文件系统 117

7.1嵌入式文件系统概述 117

7.1.1嵌入式系统存储介质 117

7.1.2嵌入式Linux文件系统 118

7.2根文件系统 121

7.2.1根文件系统目录 121

7.2.2根文件系统制作 123

7.3 Cramfs文件系统 127

7.3.1 Cramfs文件系统概述 127

7.3.2 Cramfs文件系统移植 128

7.4 JFSS2文件系统 130

7.4.1 JFSS2文件系统概述 130

7.4.2 JFSS2文件系统移植 131

7.5 Yaffs文件系统 135

7.5.1 Yaffs文件系统概述 135

7.5.2 Yaffs文件系统移植 136

7.6网络文件系统 139

7.6.1 NFS概述 139

7.6.2 NFS文件系统建立 139

7.7本章小结 141

第8章 设备驱动程序开发基础 142

8.1设备驱动概述 142

8.1.1设备驱动程序基本原理 142

8.1.2设备驱动和文件系统的关系 143

8.1.3设备分类 143

8.1.4设备号 144

8.1.5设备驱动程序开发步骤 145

8.2设备驱动程序框架 146

8.2.1设备驱动程序结构 146

8.2.2设备驱动程序关键数据结构 149

8.3设备驱动程序的加载 153

8.3.1内核模块和设备驱动程序 153

8.3.2驱动程序静态编译加载 155

8.3.3设备驱动程序动态加载 158

8.4设备驱动程序开发中的关键问题 159

8.4.1内核空间和用户空间 159

8.4.2设备注册和卸载 160

8.4.3驱动程序内存分配 162

8.4.4与硬件通信 162

8.4.5中断处理函数 164

8.5本章小结 167

第9章 网络设备驱动程序开发 168

9.1 Linux网络设备驱动程序原理 168

9.1.1 Linux驱动程序框架 168

9.1.2 Linux网络设备关键数据结构 169

9.1.3网络驱动程序接口 176

9.2 CS8900以太网芯片 178

9.2.1芯片介绍 178

9.2.2 CS8900芯片电路连接 179

9.2.3 CS8900片内寄存器介绍 181

9.2.4 CS8900芯片工作原理 185

9.3 CS8900芯片驱动程序实现 186

9.3.1网络设备初始化函数 187

9.3.2网络设备打开函数 189

9.3.3网络设备关闭函数 190

9.3.4网络设备发送数据函数 191

9.3.5网络设备接收数据函数 192

9.3.6网络设备中断处理函数 193

9.4本章小结 195

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

10.1 USB系统概述 196

10.1.1 USB系统基本模型 196

10.1.2 USB硬件系统总体结构 197

10.1.3 USB系统层次结构 198

10.2 USB主机 199

10.2.1 USB主机端构成 199

10.2.2客户软件 200

10.2.3 USB系统软件 200

10.2.4 USB主机控制器 202

10.3 USB集线器 202

10.4 USB设备 203

10.4.1 USB设备逻辑结构 203

10.4.2 USB设备物理结构 203

10.4.3 USB数据传输 204

10.4.4 USB协议栈框架 205

10.5 Linux下USB系统框架 206

10.5.1 USB系统文件节点 206

10.5.2 USB驱动结构 207

10.5.3 Linux下USB内核系统代码结构 208

10.6 USB内核分析 209

10.6.1 USB内核主要数据结构 209

10.6.2 USB内核接口 213

10.7 USB客户端驱动程序分析 217

10.7.1初始化和卸载设备模块 217

10.7.2上层文件系统接口模块 221

10.7.3数据传输模块 226

10.7.4 USB内核的支持 226

10.8本章小结 227

第11章 音频设备驱动程序开发 228

11.1音频设备概述 228

11.1.1音频信号基础 228

11.1.2音频设备原理 229

11.2 Linux音频设备驱动 230

11.2.1 DSP设备 230

11.2.2 Mixer设备 231

11.2.3 DMA缓存和内存管理 233

11.3 I 2S音频系统硬件设计 234

11.3.1 I 2S音频接口 234

11.3.2音频接口电路设计 237

11.4 I2S音频驱动程序开发实例 239

11.4.1 DSP设备驱动程序设计 239

11.4.2 Mixer设备驱动程序设计 245

11.5 I2S音频应用程序开发实例 247

11.5.1 DSP应用程序编程 247

11.5.2 Mixer应用程序编程 249

11.6本章小结 251

第12章 嵌入式应用软件开发 252

12.1嵌入式应用软件开发简介 252

12.1.1嵌入式应用软件的生命周期 252

12.1.2嵌入式应用软件的体系结构 254

12.1.3嵌入式应用软件分类 256

12.2嵌入式应用软件开发特点 263

12.3本章小结 265

第13章 QT 266

13.1嵌入式GUI简介 266

13.1.1 MicroWindows 267

13.1.2 MiniGUI 267

13.1.3 QT/Embedded 268

13.2初识QT/Embedded 268

13.2.1 QT的优势 268

13.2.2 QT的架构 270

13.2.3组成 271

13.2.4系统要求 272

13.3 QT的安装 273

13.3.1系统及安装文件设置 273

13.3.2安装QT 274

13.3.3另一种安装方法 275

13.4用QT制作嵌入式应用程序 276

13.5编译与移植 284

13.5.1编译 284

13.5.2移植 286

13.6本章小结 287

第14章 嵌入式Web服务 288

14.1嵌入式Web服务基础知识 288

14.1.1 TCP/IP简介 288

14.1.2嵌入式Web服务器 291

14.1.3 CGI技术 293

14.1.4常见嵌入式Web服务器介绍 297

14.2嵌入式Web服务器——Boa 299

14.2.1 Boa的功能实现及源文件下载 299

14.2.2 Boa的安装和配置 300

14.2.3移植测试 304

14.3 CGI开发技术 305

14.3.1 CGIC库的移植 306

14.3.2 HTML模板的制作 308

14.3.3 CGI程序的开发 308

14.4本章小结 309

第15章 嵌入式数据库设计 310

15.1数据库知识介绍 310

15.1.1基本概念 310

15.1.2关系数据库语言SQL 311

15.2 Linux环境下常见数据库简介 313

15.2.1商业数据库 313

15.2.2自由软件数据库 314

15.3 SQLite 316

15.3.1 SQLite的优点 316

15.3.2 SQLite安装 317

15.3.3直接操作SQLite数据库 319

15.3.4用C/C++语言操作SQLite数据库 324

15.3.5 SQLite的移植 331

15.4本章小结 334

第16章 嵌入式网络视频终端 335

16.1嵌入式网络视频终端简介 335

16.2系统总体设计 337

16.2.1硬件框架结构 337

16.2.2软件框架结构 337

16.3硬件设计 338

16.3.1 ARM处理器模块 338

16.3.2存储器模块 339

16.3.3图像传感器模块 341

16.3.4音频传感器模块 343

16.3.5视频压缩模块 347

16.3.6网络控制器模块 348

16.3.7辅助部分 351

16.4软件设计 352

16.4.1硬件驱动程序 352

16.4.2网络数据发送 370

16.4.3系统编译 374

16.5系统调试 375

16.6本章小结 376

参考文献 377