《嵌入式设计及Linux驱动开发指南 基于ARM 9处理器》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:孙天泽,袁文菊编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:712102361X
  • 页数:451 页
图书介绍:本书以ARM9处理器和Linux操作系统为平台,结合深圳优龙公司的开发板,详细介绍了嵌入式系统开发的流程,并针对Linux2.6版本的内核,介绍了Linux设备驱动程序开发方法。本书是基于ARM+Linux嵌入式系统开发的一本实用指导书籍,着重介绍了嵌入式系统开发的一些概念及开发的过程,使读者能快速了解嵌入式开发的步骤。

第1章 嵌入式系统基础 1

1.1 嵌入式系统简介 1

1.1.1 嵌入式系统定义 1

1.1.2 嵌入式系统与PC 2

1.1.3 嵌入式系统的特点 4

1.2 嵌入式系统的发展 4

1.2.1 嵌入式系统现状 4

1.2.2 嵌入式系统发展趋势 5

1.3 嵌入式操作系统与实时操作系统 6

1.3.1 Linux 7

1.3.2 uC/OS 8

1.3.3 Windows CE 9

1.3.4 VxWorks 10

1.3.5 Palm OS 11

1.3.6 QNX 12

1.4 嵌入式系统选型 12

第2章 基于ARM9处理器的硬件开发平台 14

2.1 ARM处理器简介 14

2.1.1 ARM公司简介 14

2.1.2 ARM微处理器核 15

2.2 ARM9微处理器简介 19

2.2.1 与ARM7处理器的比较 20

2.2.2 三星S3C2410X处理器详解 21

2.3 FS2410开发平台 55

第3章 创建嵌入式系统开发环境 59

3.1 嵌入式Linux的开发环境 59

3.2 Cygwin 60

3.3 虚拟机 63

3.4 交叉编译的预备知识 65

3.4.1 Make命令和Makefile文件 66

3.4.2 binutils工具包 69

3.4.3 gcc编译器 93

3.4.4 Glibc库 95

3.4.5 GDB 97

3.5 交叉编译 102

3.5.1 创建编译环境 103

3.5.2 编译binutils 105

3.5.3 编译bootstrap_gcc 108

3.5.4 编译Glibc 110

3.5.5 编译完整的gcc 113

3.5.6 编译GDB 114

3.5.7 成果 114

3.5.8 其他交叉编译方法 115

3.7 开发套件 118

3.6 通过二进制软件包创建交叉编译环境 118

第4章 调试嵌入式系统程序 120

4.1 嵌入式系统调试方法 120

4.1.1 实时在线仿真 120

4.1.2 模拟调试 121

4.1.3 软件调试 121

4.1.4 BDM/JTAG调试 121

4.2 ARM仿真器 122

4.2.1 techorICETM ARM仿真器 122

4.2.2 ARM仿真器工作原理 123

4.2.3 ARM仿真器的系统功能层次 124

4.2.4 使用仿真器和ADS Debugger调试ARM开发板 125

4.3 JTAG接口 129

4.3.2 通过JTAG烧写Flash 130

4.3.1 JTAG引脚定义 130

4.3.3 烧写Flash技术内幕 134

第5章 Bootloader 144

5.1 嵌入式系统的引导代码 144

5.1.1 初识Bootloader 144

5.1.2 Bootloader的启动流程 146

5.2 Bootloader之vivi 147

5.2.1 vivi简介 147

5.2.2 vivi的配置与编译 148

5.2.3 vivi代码导读 149

5.3 Bootloader之U-Boot 164

5.3.1 U-Boot代码结构分析 165

5.3.2 编译U-Boot代码 165

5.3.3 U-Boot代码导读 166

5.3.4 U-Boot命令 179

5.4 FS2410的Bootloader 180

第6章 Linux系统在ARM平台的移植 182

6.1 移植的概念 182

6.2 Linux内核结构 182

6.3 Linux-2.4内核向ARM平台的移植 184

6.3.1 根目录 184

6.3.2 arch目录 185

6.3.3 arch/arm/boot目录 187

6.3.4 arch/arm/def-configs目录 188

6.3.5 arch/arm/kernel目录 188

6.3.6 arch/arm/mm目录 190

6.4.2 arch/arm/mach-s3c2410/devs.c 191

6.4.1 定义平台和编译器 191

6.3.7 arch/arm/mach-s3c2410目录 191

6.4 Linux-2.6内核向ARM平台的移植 191

6.4.3 arch/arm/mach-s3c2410/mach-fs2410.c 194

6.4.4 串口输出 195

6.5 编译Linux内核 195

6.5.1 代码成熟等级选项 196

6.5.2 通用的一些选项 197

6.5.3 和模块相关的选项 198

6.5.4 和块相关的选项 198

6.5.5 和系统类型相关的选项 199

6.5.6 和总线相关的选项 200

6.5.7 和内核特性相关的选项 201

6.5.8 和系统启动相关的选项 201

6.5.9 和浮点运算相关的选项 201

6.5.11 和电源管理相关的选项 202

6.5.10 用户空间使用的二进制文件格式的选项 202

6.5.12 和网络协议相关的选项 203

6.5.13 和设备驱动程序相关的选项 205

6.5.14 和文件系统相关的选项 209

6.5.15 和程序性能分析相关的选项 211

6.5.16 和内核调试相关的选项 212

6.5.17 和安全相关的选项 213

6.5.18 和加密算法相关的选项 214

6.5.19 库选项 214

6.5.20 保存内核配置 214

第7章 Linux设备驱动程序开发 216

7.1 设备驱动概述 216

7.1.1 设备驱动和文件系统的关系 217

7.1.2 设备类型分类 218

7.1.3 内核空间和用户空间 220

7.2.1 设备驱动中关键数据结构 221

7.2 设备驱动基础 221

7.2.2 字符设备驱动开发 225

第8章 网络设备驱动程序开发 252

8.1 网络设备驱动程序简介 252

8.1.1 device数据结构 253

8.1.2 sk_buff数据结构 259

8.1.3 内核的驱动程序接口 261

8.2 以太网控制器CS8900A 262

8.2.1 特性 262

8.2.2 工作原理 263

8.2.3 电路连接 264

8.2.4 引脚 264

8.3.1 初始化函数 266

8.2.5 操作模式 266

8.3 网络设备驱动程序实例 266

8.3.2 打开函数 272

8.3.3 关闭函数 275

8.3.4 发送函数 275

8.3.5 接收函数 276

8.3.6 中断处理函数 279

第9章 USB驱动程序开发 282

9.1 USB驱动程序简介 282

9.1.1 USB背景知识 282

9.1.2 Linux内核对USB规范的支持 283

9.1.3 OHCI简介 283

9.2 Linux下USB系统文件结点 293

9.3 USB主机驱动结构 294

9.3.2 USB设备连接/断开时序 296

9.3.1 USB数据传输时序 296

9.4 主要数据结构及接口函数 298

9.4.1 数据传输管道 298

9.4.2 统一的USB数据传输块 298

9.4.3 USBD数据描述 300

9.4.4 USBD与HCD驱动程序接口 301

9.4.5 USBD层的设备管理 304

9.4.6 设备类驱动与USBD接口 305

9.5 USBD文件系统接口 315

9.5.1 设备驱动程序访问 315

9.5.2 设备拓扑访问 317

9.5.3 设备信息访问 322

9.7.1 HUB驱动初始化 323

9.6 设备类驱动与文件系统接口 323

9.7 USB HUB驱动程序 323

9.7.2 HUB Probe相关函数 324

9.8 OHCI HCD实现 326

9.8.1 OHCI驱动初始化 326

9.8.2 与USBD连接 326

9.8.3 OHCI根HUB 330

9.9 扫描仪设备驱动程序 334

9.9.1 USBD接口 334

9.9.2 文件系统接口 336

9.10 USB主机驱动在S3C2410X平台的实现 338

9.10.1 USB主机控制器简介 338

9.10.2 驱动程序的移植 339

10.1 嵌入式系统中的GUI简介 340

10.1.1 MicroWindows 340

第10章 图形用户接口 340

10.1.2 MiniGUI 341

10.1.3 Qt/Embedded 341

10.2 MiniGUI编程 342

10.2.1 MiniGUI移植 343

10.2.2 MiniGUI编程 346

10.3 初识Qt/Embedded 349

10.3.1 Qt介绍 350

10.3.2 系统要求 350

10.3.3 Qt的架构 351

10.4 Qt/Embedded嵌入式图形开发基础 353

10.4.1 建立Qt/Embedded开发环境 353

10.4.2 认识Qt/Embedded开发环境 355

10.4.3 窗体 358

10.4.4 对话框 366

10.4.5 外形与感觉 370

10.4.6 国际化 372

10.5 Qt/Embedded实战演练 373

10.5.1 安装Qt/Embedded工具开发包 374

10.5.2 交叉编译Qt/Embedded库 374

10.5.3 Hello,World 375

10.5.4 发布Qt/Embedded程序到目标板 383

10.5.5 添加一个Qt/Embedded应用到QPE 385

第11章 Java虚拟机的移植 388

11.1 Java虚拟机概述 388

11.1.1 Java虚拟机的概念 388

11.1.2 J2ME 389

11.1.3 KVM 390

11.2.1 获得源码 391

11.2 Java虚拟机的移植 391

11.2.2 编译环境的建立 392

11.2.3 JDK的安装 395

11.2.4 KVM的移植及编译 395

11.2.5 KVM的测试 396

11.3 其他可选的虚拟机 397

11.4 性能优化 398

第12章 嵌入式文件系统 400

12.1 文件系统简介 400

12.2 Linux根文件系统 401

12.3 Linux系统的引导过程 403

12.3.1 启动内核 403

12.3.2 init 405

12.4.1 嵌入式文件系统的特点和种类 407

12.4 嵌入式文件系统 407

12.3.3 mingetty 407

12.4.2 常见的嵌入式文件系统 409

12.4.3 MTD 419

12.4.4 RAMDISK 422

12.4.5 网络文件系统 424

12.5 Busybox 427

第13章 系统设计开发 431

13.1 概述 431

13.2 硬件功能的实现 432

13.2.1 功能定义 433

13.2.2 原理图设计 434

13.2.3 PCB设计 447

13.2.4 硬件调试 449

参考文献 450