当前位置:首页 > 工业技术
嵌入式Linux应用开发菜鸟进阶
嵌入式Linux应用开发菜鸟进阶

嵌入式Linux应用开发菜鸟进阶PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:梁旭辉主编
  • 出 版 社:北京:电子工业
  • 出版年份:2013
  • ISBN:9787121211874
  • 页数:286 页
图书介绍:本书详细介绍了嵌入式Linux系统的方方面面,从嵌入式系统的发展、环境的搭建、相关的理论基础知识,再到深入地讲解嵌入式系统的开发,由易到难详细讲解了嵌入式系统开发的流程。
《嵌入式Linux应用开发菜鸟进阶》目录

第1章 嵌入式Linux系统简介 1

1.1 嵌入式与Linux系统概述 1

1.1.1 Linux操作系统及其发展 1

1.1.2 Linux发行版本 2

1.2 Windows与Linux文件系统的异同 4

1.2.1 Linux文件系统类型 4

1.2.2 Windows与Linux文件系统的相同点 5

1.2.3 Windows与Linux文件系统的不同点 5

1.3 Linux文件类型与属性 7

1.3.1 Linux文件类型 7

1.3.2 Linux文件属性 7

1.4 嵌入式Linux常用命令及工具 8

1.4.1 Linux常用命令 8

1.4.2 嵌入式Linux常用工具 9

小结 10

第2章 搭建嵌入式Linux学习环境 12

2.1 硬件开发平台 12

2.1.1 mini2440开发板硬件资源 12

2.1.2 外围设备 14

2.2 软件开发平台搭建 14

2.2.1 tftp服务器与nfs服务器搭建 15

2.2.2 交叉编译工具 16

2.2.3 uboot的移植 17

2.2.4 Linux内核移植 18

2.2.5 Linux根文件系统移植 19

小结 23

第3章 Linux应用程序学习 24

3.1 Linux shell脚本 24

3.1.1 语法 24

3.1.2 变量 25

3.1.3 shell脚本语句 26

3.1.4 注释 27

3.2 Linux下makefile的编写 27

3.3 Linux文件编程 28

3.3.1 文件与目录 29

3.3.2 系统调用 30

3.3.3 标准I/O库 32

3.4 线程 34

3.4.1 线程优点 34

3.4.2 线程分类 35

3.4.3 线程实现 35

3.5 网络编程 37

3.5.1 TCP/IP协议 37

3.5.2 TCP和UDP 38

3.5.3 套接字 39

小结 40

第4章 嵌入式Linux设备驱动开发基础 41

4.1 嵌入式Linux设备驱动的概述 41

4.1.1 Linux设备驱动的作用 41

4.1.2 Linux设备驱动的分类及特点 42

4.2 处理器与储存器 42

4.2.1 处理器 42

4.2.2 存储器 43

4.3 接口 45

4.3.1 串口 46

4.3.2 I2C 46

4.3.3 USB 47

4.3.4 以太网接口 48

4.4 Linux内核模块 49

小结 50

第5章 Linux设备驱动之并发与竞态 51

5.1 并发及其管理 51

5.2 自旋锁 52

5.2.1 自旋锁API 52

5.2.2 自旋锁基本使用模式 53

5.2.3 其他自旋锁函数 54

5.2.4 读者/写者自旋锁 55

5.2.5 Linux内核自旋锁 55

5.3 信号量与互斥体 57

5.3.1 信号量 57

5.3.2 互斥体 62

5.4 原子操作 64

5.4.1 原子整数操作 64

5.4.2 原子位操作 65

5.5 中断屏蔽 65

小结 66

第6章 Linux设备驱动中的阻塞与非阻塞I/O 67

6.1 阻塞与非阻塞I/O 67

6.1.1 休眠 68

6.1.2 等待队列 68

6.1.3 阻塞和非阻塞操作 70

6.2 轮询操作 70

6.2.1 轮询概述 71

6.2.2 Linux应用程序中的轮询编程——select() 71

6.2.3 Linux设备驱动中的轮询编程——poll() 73

小结 75

第7章 Linux设备驱动之时间、延迟及延缓操作 76

7.1 Linux内核时间 76

7.1.1 处理器特定的寄存器 76

7.1.2 延迟操作 77

7.2 内核定时器 78

7.3 tasklet 80

7.4 工作队列 82

小结 84

第8章 Linux设备驱动之内存分配与I/O访问 85

8.1 内存空间与I/O空间 85

8.2 内存管理 85

8.3 内存分配 88

8.3.1 kmalloc与vmalloc 88

8.3.2 get_free_page和相关函数 89

8.4 设备I/O端口和I/O内存的访问 90

8.4.1 I/O寄存器和常规内存 90

8.4.2 操作I/O端口(申请,访问,释放) 91

8.4.3 操作I/O内存(申请,映射,访问,释放) 92

8.4.4 像I/O内存一样访问端口 93

8.4.5 ARM体系的I/O操作接口 94

8.5 I/O内存的静态映射 94

小结 96

第9章 Linux设备驱动之中断处理 97

9.1 Linux中断处理程序框架 97

9.1.1 中断处理过程 97

9.1.2 Linux中断处理程序的上半部与下半部机制 99

9.2 Linux中断编程 100

9.3 中断共享 103

9.4 中断驱动的I/O 104

小结 104

第10章 Linux设备驱动工程开发技术 105

10.1 自创建设备文件 105

10.2 混杂设备驱动 107

10.3 Linux设备模型 109

10.3.1 kobject和kset数据结构 110

10.3.2 sysfs文件系统 113

10.3.3 总线、设备和驱动程序 114

10.4 设备驱动分层思想 120

小结 121

第11章 Linux字符设备驱动 122

11.1 字符设备驱动结构 122

11.1.1 主、次设备号 122

11.1.2 字符设备驱动的重要数据结构 124

11.2 字符设备的注册和释放 128

11.2.1 字符设备的注册 129

11.2.2 字符设备的释放 131

11.3 字符设备驱动的一些小技巧 131

小结 133

第12章 基于内存的简单字符设备 134

12.1 简单字符驱动的数据结构 134

12.1.1 定义字符设备驱动的设备数据结构 134

12.1.2 定义file_operation结构和挂接相应的系统调用函数 135

12.2 简单字符驱动设计 136

12.2.1 字符设备驱动的加载与卸载 137

12.2.2 字符设备驱动的打开与关闭 139

12.2.3 字符设备驱动的读写函数 140

12.2.4 字符设备驱动的llseek函数 141

12.3 应用程序测试 142

12.3.1 应用程序设计原理 142

12.3.2 程序代码 142

12.4 简单字符设备驱动运行效果 143

12.4.1 makefile程序的编写 143

12.4.2 字符设备驱动运行效果 144

小结 145

第13章 按键控制LED字符驱动 146

13.1 按键和LED设备硬件接口和寄存器 146

13.2 按键控制LED驱动原理 147

13.3 按键控制LED驱动程序分析 148

13.3.1 按键与LED集成在一个驱动中 148

13.3.2 按键与LED驱动的实现 156

13.4 按键控制LED驱动测试 171

13.5 驱动程序的运行效果 171

小结 173

第14章 基于DS18B20传感器的驱动开发 174

14.1 DS18B20温度传感器简介 174

14.1.1 温度传感器的工作特点 175

14.1.2 DS18B20的外部结构 175

14.1.3 DS18B20的内部结构 176

14.1.4 DS18B20的应用电路结构 178

14.1.5 DS18B20的工作原理 178

14.2 DS18B20温度传感器程序设计实现 180

14.2.1 复位程序 180

14.2.2 写1字节子程序 182

14.2.3 读1字节子程序 183

14.2.4 确定温度传感器的头文件和相应的数据结构 185

14.2.5 确定驱动要实现的功能函数和file operation结构的挂接 186

14.2.6 编写加载和卸载函数 186

14.2.7 编写要实现的功能函数 187

14.3 应用程序设计 195

14.4 驱动运行效果 197

14.4.1 makefile文件的编写 197

14.4.2 应用程序运行效果图 197

小结 198

第15章 MP3播放器 199

15.1 MP3播发器简介 199

15.2 按键播放MP3的原理 199

15.2.1 MP3播放器系统框架 199

15.2.2 MP3音频驱动的移植 201

15.3 MP3程序设计 203

15.3.1 按键驱动程序设计 203

15.3.2 MP3应用程序设计 208

15.3.3 最终的程序代码 215

15.4 MP3播放器的测试 223

小结 224

第16章 基于motion的动态图像检测系统开发 225

16.1 动态图像检测系统简介 225

16.2 系统框图和流程图 225

16.2.1 系统框图 226

16.2.2 系统设计技术 227

16.3 动态监测系统程序分析 228

16.3.1 motion动态图像采集系统移植 228

16.3.2 温度采集系统 231

16.3.3 动态图像控制系统 231

16.3.4 远程监控服务系统 239

16.3.5 SD卡存储系统 248

16.4 系统测试运行效果图 248

小结 250

第17章 块设备驱动程序 251

17.1 字符设备驱动与块设备驱动 251

17.2 块设备驱动基本框架 252

17.3 块设备在Linux系统中各层的调用关系 252

17.4 块设备驱动的重要数据结构 253

17.4.1 block_device_operations结构体 254

17.4.2 gendisk结构体 255

17.4.3 request与request_queue结构体 255

17.4.4 块I/O 256

17.4.5 块设备中各结构体之间的关系 258

17.5 块设备驱动程序分析 259

小结 261

第18章 基于ramdisk的虚拟磁盘块设备驱动 262

18.1 块设备驱动程序设计 262

18.2 基于I/O调度器的块设备驱动程序设计 262

18.3 没有I/O调度器的块设备驱动程序设计 265

小结 267

第19章 SD卡块设备驱动 268

19.1 SD卡概述 268

19.1.1 SD卡简介 268

19.1.2 SD卡的引脚 269

19.1.3 SD卡的内存组织 270

19.2 SD卡寄存器 271

19.2.1 CID寄存器 271

19.2.2 SD总线协议 272

19.2.3 SD卡指令和命令 272

19.2.4 块读写操作 274

19.3 SD卡设备驱动程序分析 275

19.3.1 SD卡驱动程序的重要数据结构 276

19.3.2 SD设备驱动分析 278

19.3.3 SD卡驱动在mini2440开发板的开发与移植 281

19.4 测试SD卡驱动程序 283

19.4.1 系统设计思路与步骤 283

19.4.2 系统测试结果 285

小结 286

返回顶部