当前位置:首页 > 工业技术
ARM嵌入式Linux驱动程序开发
ARM嵌入式Linux驱动程序开发

ARM嵌入式Linux驱动程序开发PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:廉文娟,郭华,范延滨编
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111455004
  • 页数:340 页
图书介绍:本书基于Linux 2.6内核,以S3C2410A为例详细介绍了Linux在ARM上的移植过程和驱动程序设计的理论知识,并在此基础上由浅入深地讲解了Linux驱动程序的设计步骤及调试方法。全书共分11章,主要内容包括嵌入式系统开发概述,创建嵌入式系统开发环境,嵌入式文件系统分析与设计,BootLoader分析与设计,Linux系统的移植,Linux设备驱动程序,串口驱动程序,基于ZLG7290的键盘和数码管驱动设计,LCD驱动程序分析与设计,USB设备驱动程序分析与设计,网络设备驱动程序分析与设计等。本书既可作为高等院校相关专业的教材,也可作为嵌入式系统开发与应用技术人员和Linux设备驱动开发人员的参考书。
《ARM嵌入式Linux驱动程序开发》目录

第1章 嵌入式系统概述 1

1.1 嵌入式系统的概念 1

1.1.1 嵌入式系统的定义 1

1.1.2 嵌入式系统的特点 2

1.1.3 嵌入式系统的发展趋势 3

1.2 嵌入式系统的分类 4

1.3 嵌入式系统的组成结构 6

1.4 嵌入式处理器简介 9

1.5 ARM处理器 11

1.5.1 ARM系列处理器概述 11

1.5.2 ARM处理器的寄存器文件 18

1.5.3 ARM处理器的异常与中断 22

1.5.4 ARM处理器的指令系统 25

1.5.5 S3C2410A的性能 35

1.6 嵌入式操作系统 39

1.6.1 嵌入式操作系统的发展阶段 39

1.6.2 嵌入式实时操作系统 39

1.6.3 嵌入式操作系统选型 40

1.6.4 典型嵌入式操作系统 41

本章小结 44

第2章 创建嵌入式系统开发环境 45

2.1 Linux常用命令 45

2.1.1 命令基础 45

2.1.2 文件操作命令 47

2.1.3 目录操作命令 50

2.1.4 文件与目录权限操作 51

2.1.5 Linux用户和组操作的常用命令 51

2.1.6 文件压缩与打包命令 54

2.1.7 进程操作的相关命令 56

2.1.8 网络命令 57

2.2 交叉编译环境的预备知识 59

2.2.1 GCC编译器 59

2.2.2 Glibc库和GDB调试工具 62

2.2.3 make命令和makefile文件 68

2.2.4 Binutils工具包 72

2.3 搭建交叉编译环境 74

2.3.1 交叉编译简介 74

2.3.2 搭建S3C2410A交叉编译环境 75

2.3.3 程序执行方式 76

本章小结 79

第3章 嵌入式文件系统分析与设计 80

3.1 Linux文件系统类型 80

3.2 Linux根文件系统 83

3.3 Linux系统的引导过程 85

3.4 嵌入式文件系统 88

3.4.1 嵌入式文件系统的特点和种类 88

3.4.2 常见的嵌入式文件系统 90

3.4.3 内存技术设备 92

3.4.4 RAMDisk技术 93

3.4.5 网络文件系统 97

3.5 Busybox 102

本章小结 106

第4章 BootLoader分析与设计 107

4.1 嵌入式系统的引导代码 107

4.1.1 初识BootLoader 107

4.1.2 BootLoader的启动流程 109

4.2 常用的嵌入式Linux BootLoader 113

4.2.1 U-Boot 113

4.2.2 VIVI 114

4.2.3 Blob 115

4.2.4 RedBoot 115

4.2.5 其他BootLoader 116

4.3 U-Boot分析与移植 116

4.3.1 U-Boot源代码结构 116

4.3.2 U-Boot源代码编译 118

4.3.3 U-Boot移植步骤 123

4.3.4 U-Boot启动流程分析 124

4.4 U-Boot使用 130

4.4.1 U-Boot的常用命令 130

4.4.2 U-Boot的环境变量 137

本章小结 139

第5章 Linux系统的移植 140

5.1 Linux内核配置 140

5.1.1 Linux内核源代码结构 140

5.1.2 Linux内核配置系统 141

5.2 Linux内核编译 148

5.2.1 Kbuild编译工具 148

5.2.2 Linux内核编译命令及编译过程 156

5.2.3 Linux内核编译结果 161

5.3 Linux内核移植 162

5.3.1 Linux内核移植方法 162

5.3.2 Linux内核移植过程 163

5.4 Linux内核启动过程分析 173

5.4.1 Linux内核启动流程 173

5.4.2 Linux内核启动源代码分析 173

本章小结 186

第6章 Linux设备驱动程序 187

6.1 设备驱动基础 187

6.1.1 设备驱动的概念 187

6.1.2 设备类型与数据交换方式 189

6.1.3 内核空间和用户空间 194

6.2 设备驱动开发 195

6.2.1 Linux设备驱动程序框架 195

6.2.2 设备驱动中的关键数据结构 198

6.2.3 设备驱动中的基本函数 202

6.2.4 字符设备驱动开发举例 205

本章小结 207

第7章 串口驱动程序 208

7.1 串口概述 208

7.2 S3C2410A串口控制器 210

7.2.1 S3C2410A串口控制器原理 211

7.2.2 S3C2410A串口控制器相关寄存器 213

7.3 嵌入式Linux串口驱动程序设计 216

7.3.1 串口驱动程序框架 216

7.3.2 串口驱动程序的注册 218

7.3.3 ops中的串口操作函数 220

7.3.4 串口驱动中与控制台有关的函数 224

7.4 串口应用程序设计 226

7.4.1 串口终端函数 226

7.4.2 串口通信应用 228

本章小结 232

第8章 基于ZLG7290的键盘和数码管驱动设计 233

8.1 ZLG7290介绍 233

8.1.1 ZLG7290功能描述 233

8.1.2 ZLG7290工作原理 234

8.1.3 ZLG7290内部寄存器 235

8.1.4 控制命令详解 236

8.2 IIC总线 238

8.2.1 IIC总线概述 238

8.2.2 IIC总线标准 239

8.3 ZLG7290硬件电路设计 243

8.4 S3C2410A中与IIC相关的I/O端口和寄存器 244

8.4.1 S3C2410A的IIC总线接口 244

8.4.2 各种模式下的操作流程图 246

8.4.3 IIC总线特殊寄存器 246

8.5 Linux的IIC驱动程序分析与设计 251

8.5.1 IIC总线驱动的关键数据结构 251

8.5.2 S3C2410A总线IIC设备驱动实现 253

8.5.3 ZLG7290的IIC驱动安装与测试 255

本章小结 259

第9章 LCD驱动程序分析与设计 260

9.1 LCD 260

9.2 LCD的显示接口 262

9.3 嵌入式处理器的LCD控制器 270

9.3.1 LCD控制器 270

9.3.2 LCD控制器的设置 271

9.3.3 LCD的字符显示缓存 276

9.4 基于framebuffer的LCD驱动程序 277

9.4.1 framebuffer概述 277

9.4.2 framebuffer设备驱动程序的结构 277

9.4.3 framebuffer设备驱动程序的设计 281

9.5 LCD驱动程序在S3C2410A上的移植 289

9.5.1 移植步骤 289

9.5.2 LCD驱动程序分析 292

本章小结 301

第10章 USB设备驱动程序分析与设计 302

10.1 USB接口概述 302

10.1.1 USB系统组成 302

10.1.2 USB的电气特性 302

10.1.3 USB总线的拓扑结构 303

10.1.4 USB的通信协议 304

10.2 USB设备驱动程序设计 305

10.2.1 USB设备驱动程序分类 305

10.2.2 USB驱动的框架程序 305

10.2.3 设备端USB驱动程序 314

10.3 USB驱动程序在S3C2410A上的移植 315

本章小结 317

第11章 网络设备驱动程序分析与设计 318

11.1 网络协议 318

11.2 以太网 321

11.2.1 以太网的拓扑结构 322

11.2.2 以太网协议 322

11.2.3 以太网帧结构 323

11.3 嵌入式网络接口 324

11.4 嵌入式Linux网络驱动 329

11.4.1 Linux网络设备驱动程序的体系结构 330

11.4.2 网络驱动程序的基本方法 330

11.4.3 网络驱动中的主要数据结构 333

11.5 网络驱动程序的移植及分析 335

本章小结 339

参考文献 340

返回顶部