《嵌入式Linux C语言基础与实例进阶》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:零点工作室主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302268888
  • 页数:351 页
图书介绍:本书面向Linux C语言初中级读者,全书共分三大篇16章。

第1章 嵌入式系统基础知识 1

1.1嵌入式系统概述 1

1.1.1嵌入式系统简介 1

1.1.2嵌入式系统的组成 2

1.1.3嵌入式系统的应用领域 4

1.1.4嵌入式系统的发展趋势 5

1.2 ARM处理器平台介绍 5

1.2.1 ARM处理器简介 6

1.2.2 ARM体系结构 6

1.2.3 ARM微处理器系列 8

1.2.4 ARM处理器的应用领域和特点 11

1.3 Linux操作系统 12

1.3.1 Linux的发展历史 12

1.3.2 Linux发行版本 13

1.3.3 Linux系统的特点和组成 14

1.3.4 Linux常用命令 16

1.4嵌入式系统开发 22

本章小结 24

思考与练习 24

第2章Linux环境下C语言的开发 25

2.1 C语言简单回顾 25

2.2 Linux程序设计基础知识 26

2.2.1程序安装目录 26

2.2.2头文件 27

2.2.3库文件 27

2.3 Linux下的C语言开发环境 30

2.4嵌入式Linux C语言开发流程和开发工具 30

2.5嵌入式Linux中程序的运行原理 31

2.6 Linux程序设计的特点 33

2.7 Linux下C语言编码的风格 34

本章小结 35

思考与练习 35

第3章Bootloader 36

3.1 Bootloader的工作原理 36

3.1.1 Bootloader概述 36

3.1.2 Bootloader的启动流程 37

3.2 ViVi 42

3.2.1 ViVi的源代码结构 42

3.2.2 ViVi的启动过程 43

3.3 U-Boot 50

3.3.1 U-Boot的特点 50

3.3.2 U-Boot的目录结构 50

3.3.3 U-Boot的启动过程 51

3.3.4 U-Boot的移植 55

3.3.5 U-Boot与内核的关系 55

本章小结 61

思考与练习 61

第4章Linux环境下C语言编程基础 62

4.1 Vi编辑器 62

4.1.1 Vi的基本模式 62

4.1.2 V i的基本操作 63

4.2 Vim编辑器 65

4.2.1 Vim的启动 66

4.2.2保存与打开文件 67

4.2.3移动光标 67

4.2.4插入 68

4.2.5删除 69

4.2.6取消 69

4.2.7保存 70

4.2.8退出 70

4.3 GCC编译器 70

4.3.1 GCC编译流程分析 71

4.3.2实例:GCC编译程序 71

4.3.3实例:GCC编译多重源代码文件 77

4.3.4 GCC编译选项分析 78

4.3.5 GCC使用库函数 80

4.3.6实例:静态库的创建 81

4.4 GDB调试器 82

4.4.1 GDB调试器概述 82

4.4.2实例:GDB调试程序 83

4.5 Make工程管理器 86

4.5.1 Makeile文件的构成 87

4.5.2 Makeile变量 88

4.5.3 Make工程管理器的使用 90

本章小结 91

思考与练习 91

第5章Linux Shell编程 92

5.1什么是Shell 92

5.2 几种流行的Shell 93

5.3 bash的特点 94

5.4 Shell程序设计基础 95

5.4.1 Shell的基本语法 95

5.4.2 Shell程序的变量和参数 96

5.4.3 Shell的测试命令 100

5.4.4 Shell的条件语句 101

5.4.5 Shell的循环语句 102

5.4.6函数 104

5.4.7命令分组 104

5.4.8引号的使用方法 104

5.4.9实例:Shell菜单程序 105

5.4.10实例:自动调用ftp传输软件 106

5.5运行Shell程序的方法 107

5.6 bash的内部命令和外部命令 107

本章小结 109

思考与练习 109

第6章 创建嵌入式系统开发环境 111

6.1嵌入式系统开发环境的构建 111

6.2 Cygwin 114

6.3超级终端和minicom的配置及使用 115

6.4嵌入式Linux操作系统内核编译 116

6.4.1 Linux内核结构 116

6.4.2内核的配置 119

6.4.3内核编译的过程 120

6.4.4内核的移植 121

6.5 NFS 122

6.6 Tftp 124

本章小结 125

思考与练习 125

第7章C程序基础 126

7.1数据、运算符、表达式 126

7.1.1 C程序的结构和语法规则 126

7.1.2 C程序语句概述 126

7.1.3标识符 127

7.1.4关键字 128

7.1.5常量 128

7.1.6变量 128

7.1.7基本数据类型 129

7.1.8算术运算符、赋值运算符及其表达式 130

7.1.9关系运算符、逻辑运算符及其表达式 132

7.2数据的输入和输出 133

7.2.1数据的输出 134

7.2.2数据的输入 135

7.2.3实例:汉诺塔 136

7.3基本语句 138

7.3.1语句和复合语句 138

7.3.2条件语句 139

7.3.3实例:查找最小值 140

7.3.4循环控制 141

7.4数组 143

7.4.1一维数组 143

7.4.2二维数组 145

7.4.3字符数组和字符串 146

7.4.4实例:数值顺序输出 147

7.5函数与指针 148

7.5.1函数 149

7.5.2指针 151

7.5.3函数使用实例:数值比较 154

7.5.4指针使用实例:倒序输出 155

本章小结 156

思考与练习 157

第8章 嵌入式GUI技术 158

8.1嵌入式图形用户界面简介 158

8.2 Linux下几种主流GUI介绍 158

8.2.1紧缩的X Window系统 158

8.2.2 MiniGUI 159

8.2.3 Qt/Embedded 159

8.2.4 MicroWindows 160

8.2.5 OpenGUI 161

8.2.6 GTK+ 161

8.3基于MiniGUI的图形界面开发 162

8.3.1 MiniGUI程序框架 163

8.3.2 MiniGUI的窗口和消息 164

8.3.3实例:MiniGUI窗口编程 167

8.3.4菜单 172

8.3.5键盘与鼠标 172

8.3.6对话框 173

8.3.7常用控件 174

8.3.8实例:MiniGUI控件编程 177

本章小结 181

思考与练习 181

第9章 嵌入式文件系统与存储技术 183

9.1嵌入式文件系统的功能和特点 183

9.2 Linux常见的文件系统 184

9.3 Linux文件结构 186

9.3.1 Linux文件类型 188

9.3.2 Linux文件的访问权限控制 190

9.3.3 MTD 192

9.4 FLASH存储技术 193

9.4.1 FLASH的类型 196

9.4.2 NOR FLASH与NAND FLASH的区别 197

9.5基于FAT的嵌入式文件系统设计 198

9.5.1 FAT文件系统的组成 198

9.5.2 FAT层逻辑文件系统的总体框架 199

本章小结 202

思考与练习 202

第10章 嵌入式Linux设备驱动开发 203

10.1 Linux设备驱动开发概述 203

10.1.1设备驱动和文件系统的关系 204

10.1.2设备类型和设备号 204

10.2设备驱动模块化编程 205

10.2.1设备驱动程序原理 205

10.2.2设备访问方式及实现 207

10.2.3内核与驱动程序的关系 209

10.2.4中断处理 210

10.3 Linux字符设备驱动 211

10.3.1字符设备驱动概述 211

10.3.2实例:字符设备驱动 214

10.4块设备驱动 217

10.4.1块设备驱动简介 217

10.4.2块设备相关结构体 218

10.5网络设备驱动 223

10.5.1网络设备概述 223

10.5.2网络设备的运行机制 224

10.5.3 sk buff数据结构 225

10.5.4数据包的发送与接收 227

10.5.5网络设备驱动程序的加载 228

本章小结 229

思考与练习 229

第11章 进程 230

11.1进程概述 230

11.1.1进程标识 230

11.1.2实例:获得进程ID 231

11.1.3 Linux进程的结构 232

11.1.4 Linux进程状态 232

11.1.5 Linux进程控制块结构描述 233

11.2进程控制 234

11.2.1创建进程 234

11.2.2实例:创建进程 234

11.2.3创建守护进程 235

11.2.4实例:创建守护进程 236

11.2.5进程退出 238

11.2.6改变进程的优先级 238

11.2.7执行新程序 240

11.2.8等待进程结束 240

11.2.9实例:进程等待 241

11.3进程的内存映像 243

11.4 Linux进程调度 243

11.5进程间通信 244

11.5.1管道 245

11.5.2有名管道 246

11.5.3消息队列 246

11.5.4信号量 249

11.5.5共享内存 250

11.5.6实例:进程通信 252

本章小结 255

思考与练习 255

第12章 线程 256

12.1线程概述 256

12.2创建线程 256

12.2.1创建线程概述 256

12.2.2实例:创建线程 257

12.3获取/设置线程属性 258

12.3.1获取/设置线程属性的函数 259

12.3.2实例:读取和设置线程属性 262

12.4取消线程 263

12.5线程的私有数据 264

12.5.1操作线程私有数据的函数 264

12.5.2实例:线程私有数据 265

12.6等待线程 266

12.7信号量 267

12.8互斥锁 269

12.8.1互斥锁操作函数 269

12.8.2实例:互斥锁 271

12.9条件变量 272

12.9.1条件变量操作 272

12.9.2实例:条件变量使用 274

本章小结 275

思考与练习 276

第13章Linux网络编程 277

13.1网络编程的基本概念 277

13.1.1 IP地址 277

13.1.2端口 278

13.1.3域名 278

13.1.4 TCP/IP协议 279

13.1.5 PPP协议 280

13.2 Socket通信 281

13.2.1 Socket概述 281

13.2.2 Socket基础 282

13.2.3 Socket网络编程 283

13.2.4实例:Socket聊天编程 287

13.2.5实例:利用Socket进行通信 292

本章小结 296

思考与练习 296

第14章 嵌入式视频采集系统 297

14.1系统方案论证 297

14.2嵌入式开发平台搭建 298

14.2.1 Linux操作系统 298

14.2.2建立交叉编译环境 298

14.3 S3C2440A介绍 300

14.4嵌入式软件平台 303

14.4.1 U-Boot移植 304

14.4.2 Linux内核移植 309

14.4.3根文件系统移植 311

14.4.4配置对USB设备的支持 314

14.4.5 USB摄像头驱动移植 315

14.5视频采集系统平台的软件实现 316

14.5.1嵌入式Web服务器 316

14.5.2嵌入式视频服务器 318

本章小结 322

第15章 指纹识别门禁系统设计 323

15.1自动指纹识别系统概述 323

15.2指纹识别原理 323

15.2.1指纹特征 324

15.2.2指纹图像增强的方法 325

15.2.3指纹特征的提取 326

15.2.4指纹图像匹配 326

15.2.5指纹识别系统的性能参数 327

15.3系统硬件结构介绍 327

15.4指纹传感器U.are.U 4000b sensor 328

15.5系统的软件结构 329

15.6 Linux内核以及Bootloader移植 330

15.7界面功能介绍 335

本章小结 336

第16章 基于Web Service的嵌入式智能家居系统 337

16.1系统概述 337

16.2 Web Service介绍 338

16.3系统设计 339

16.4家庭设备操作 341

16.5服务器对外接口的Web Service实现 342

16.6视频采集 343

本章小结 351