图书介绍

嵌入式Linux应用开发完全手册PDF|Epub|txt|kindle电子书版本下载

嵌入式Linux应用开发完全手册
  • 韦东山编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115182623
  • 出版时间:2008
  • 标注页数:579页
  • 文件大小:174MB
  • 文件页数:595页
  • 主题词:Linux操作系统-程序设计-技术手册

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

嵌入式Linux应用开发完全手册PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇 嵌入式Linux开发环境构建篇第1章 嵌入式Linux开发概述2

1.1 嵌入式系统介绍2

1.1.1 嵌入式系统的定义和特点2

1.1.2 嵌入式技术的发展历史3

1.2 基于ARM处理器的嵌入式Linux系统5

1.2.1 ARM处理器介绍5

1.2.2 在嵌入式系统中选择嵌入式Linux的理由8

第2章 嵌入式Linux开发环境构建10

2.1 硬件环境构建10

2.1.1 主机与目标板结合的交叉开发模式10

2.1.2 硬件要求11

2.2 软件环境构建12

2.2.1 主机Linux操作系统的安装12

2.2.2 主机Linux操作系统上网络服务的配置与启动18

2.2.3 在主机Linux操作系统中安装基本的开发环境23

2.2.4 光盘的内容结构及安装23

2.2.5 安装交叉编译工具链25

2.2.6 书中写作风格的约定28

第3章 嵌入式编程基础知识29

3.1 交叉编译工具选项说明29

3.1.1 arm-linux-gcc选项29

3.1.2 arm-linux-ld选项38

3.1.3 arm-linux-objcopy选项41

3.1.4 arm-linux-objdump选项43

3.1.5 汇编代码、机器码和存储器的关系以及数据的表示44

3.2 Makefile介绍45

3.2.1 Makefile规则45

3.2.2 Makefile文件里的赋值方法46

3.2.3 Makefile常用函数46

3.3 常用ARM汇编指令及ATPCS规则52

3.3.1 本书使用的所有汇编指令52

3.3.2 ARM-THUMB子程序调用规则ATPCS55

第4章 Windows、Linux环境下相关工具、命令的使用58

4.1 Windows环境下的工具介绍58

4.1.1 代码阅读、编辑工具Source Insight58

4.1.2 文件传输工具Cuteftp63

4.1.3 远程登录工具SecureCRT63

4.1.4 TFTP服务器软件Tftpd3264

4.2 Linux环境下的工具、命令介绍65

4.2.1 代码阅读、编辑工具KScope65

4.2.2 远程登录工具C-kermit69

4.2.3 编辑命令vi69

4.2.4 查找命令grep、find命令71

4.2.5 在线手册查看命令man72

4.2.6 其他命令:tar、diff、patch73

第2篇 ARM9嵌入式系统基础实例篇76

第5章 GPIO接口76

5.1 GPIO硬件介绍76

5.1.1 通过寄存器来操作GPIO引脚76

5.1.2 怎样使用软件来访问硬件77

5.2 GPIO操作实例:LED和按键80

5.2.1 硬件设计80

5.2.2 程序设计及代码详解80

5.2.3 实例测试86

第6章 存储器控制87

6.1 使用存储控制器访问外设的原理87

6.1.1 S3C2410/S3C2440的地址空间87

6.1.2 存储控制器与外设的关系89

6.1.3 存储控制器的寄存器使用方法91

6.2 存储控制器操作实例:使用SDRAM94

6.2.1 代码详解及程序的复制、跳转过程94

6.2.2 实例测试97

第7章 内存管理单元MMU98

7.1 内存管理单元MMU介绍98

7.1.1 S3C2410/S3C2440 MMU特性98

7.1.2 S3C2410/S3C2440 MMU地址变换过程99

7.1.3 内存的访问权限检查107

7.1.4 TLB的作用109

7.1.5 Cache的作用110

7.1.6 S3C2410/S3C2440 MMU、TLB、Cache的控制指令113

7.2 MMU使用实例:地址映射113

7.2.1 程序设计113

7.2.2 代码详解114

7.2.3 实例测试124

第8章 NAND Flash控制器125

8.1 NAND Flash介绍和NAND Flash控制器使用125

8.1.1 Flash介绍125

8.1.2 NAND Flash的物理结构127

8.1.3 NAND Flash访问方法128

8.1.4 S3C2410/S3C2440 NAND Flash控制器介绍134

8.2 NAND Flash控制器操作实例:读Flash135

8.2.1 读NAND Flash的步骤135

8.2.2 代码详解137

第9章 中断体系结构143

9.1 S3C2410/S3C2440中断体系结构143

9.1.1 ARM体系CPU的7种工作模式143

9.1.2 S3C2410/S3C2440中断控制器146

9.1.3 中断控制器寄存器149

9.2 中断控制器操作实例:外部中断151

9.2.1 按键中断代码详解151

9.2.2 实例测试158

第10章 系统时钟和定时器159

10.1 时钟体系及各类时钟部件159

10.1.1 S3C2410/S3C2440时钟体系159

10.1.2 PWM定时器161

10.1.3 WATCHDOG定时器164

10.2 MPLL和定时器操作实例166

10.2.1 程序设计166

10.2.2 代码详解166

10.2.3 实例测试170

第11章 通用异步收发器UART171

11.1 UART原理及UART部件使用方法171

11.1.1 UART原理说明171

11.1.2 S3C2410/S3C2440 UART的特性172

11.1.3 S3C2410/S3C2440 UART的使用173

11.2 UART操作实例177

11.2.1 代码详解177

11.2.2 实例测试180

第12章 I2C接口181

12.1 I2C总线协议及硬件介绍181

12.1.1 I2C总线协议181

12.1.2 S3C2410/S3C2440 I2C总线控制器184

12.2 I2C总线操作实例187

12.2.1 I2C接口RTC芯片M41t11的操作方法187

12.2.2 程序设计188

12.2.3 设置/读取M41t11的源码详解188

12.2.4 I2C实例的连接脚本195

12.2.5 实例测试196

第13章 LCD控制器197

13.1 LCD和LCD控制器197

13.1.1 LCD显示器197

13.1.2 S3C2410/S3C2440 LCD控制器介绍199

13.2 TFT LCD显示实例210

13.2.1 程序设计210

13.2.2 代码详解210

13.2.3 实例测试221

第14章 ADC和触摸屏接口222

14.1 ADC和触摸屏硬件介绍及使用222

14.1.1 S3C2410/S3C2440 ADC和触摸屏接口概述222

14.1.2 S3C3410/S3C2440 ADC接口的使用方法224

14.1.3 触摸屏原理及接口226

14.2 ADC和触摸屏操作实例230

14.2.1 硬件设计230

14.2.2 程序设计230

14.2.3 测试ADC的代码详解230

14.2.4 测试触摸屏的代码详解232

14.2.5 实例测试237

第3篇 嵌入式Linux系统移植篇240

第15章 移植U-Boot240

15.1 Bootloader简介240

15.1.1 Bootloader的概念240

15.1.2 Bootloader的结构和启动过程241

15.1.3 常用Bootloader介绍246

15.2 U-Boot分析与移植246

15.2.1 U-Boot工程简介246

15.2.2 U-Boot源码结构247

15.2.3 U-Boot的配置、编译、连接过程249

15.2.4 U-Boot的启动过程源码分析257

15.2.5 U-Boot的移植264

15.2.6 U-Boot的常用命令288

15.2.7 使用U-Boot来执行程序292

第16章 移植Linux内核293

16.1 Linux版本及特点293

16.2 Linux移植准备294

16.2.1 获取内核源码294

16.2.2 内核源码结构及Makefile分析295

16.2.3 内核的Kconfig分析304

16.2.4 Linux内核配置选项309

16.3 Linux内核移植313

16.3.1 Linux内核启动过程概述313

16.3.2 修改内核以支持S3C2410/S3C2440开发板314

16.3.3 修改MTD分区327

16.3.4 移植YAFFS文件系统330

16.3.5 编译、烧写、启动内核333

第17章 构建Linux根文件系统335

17.1 Linux文件系统概述335

17.1.1 Linux文件系统的特点335

17.1.2 Linux根文件系统目录结构336

17.1.3 Linux文件属性介绍340

17.2 移植Busybox341

17.2.1 Busybox概述341

17.2.2 init进程介绍及用户程序启动过程342

17.2.3 编译/安装Busybox346

17.3 使用glibc库350

17.3.1 glibc库的组成350

17.3.2 安装glibc库&351

17.4 构建根文件系统352

17.4.1 构建etc目录352

17.4.2 构建dev目录354

17.4.3 构建其他目录356

17.4.4 制作/使用yaffs文件系统映象文件356

17.4.5 制作/使用jffs2文件系统映象文件360

第18章 Linux内核调试技术362

18.1 内核打印函数printk362

18.1.1 printk的使用362

18.1.2 串口控制台364

18.2 内核源码级别的调试方法366

18.2.1 内核调试工具KGDB的作用与原理366

18.2.2 给内核添加KGDB功能支持S3C2410/S3C2440367

18.2.3 结合可视化图形前端DDD和gdb来调试内核372

18.3 Oops信息及栈回溯375

18.3.1 Oops信息来源及格式375

18.3.2 配置内核使Oops信息的栈回溯信息更直观376

18.3.3 使用Oops信息调试内核的实例376

18.3.4 使用Oops的栈信息手工进行栈回溯380

第4篇 嵌入式Linux设备驱动开发篇第19章 字符设备驱动程序384

19.1 Linux驱动程序开发概述384

19.1.1 应用程序、库、内核、驱动程序的关系384

19.1.2 Linux驱动程序的分类和开发步骤385

19.1.3 驱动程序的加载和卸载387

19.2 字符设备驱动程序开发387

19.2.1 字符设备驱动程序中重要的数据结构和函数387

19.2.2 LED驱动程序源码分析389

第20章 Linux异常处理体系结构396

20.1 Linux异常处理体系结构概述396

20.1.1 Linux异常处理的层次结构396

20.1.2 常见的异常400

20.2 Linux中断处理体系结构401

20.2.1 中断处理体系结构的初始化401

20.2.2 用户注册中断处理函数的过程404

20.2.3 中断的处理过程406

20.2.4 卸载中断处理函数409

20.3 使用中断的驱动程序示例410

20.3.1 按键驱动程序源码分析410

20.3.2 测试程序情景分析415

第21章 扩展串口驱动程序移植419

21.1 串口驱动程序框架概述419

21.1.1 串口驱动程序术语介绍419

21.1.2 串口驱动程序的4层结构420

21.2 扩展串口驱动程序移植423

21.2.1 串口驱动程序低层代码分析423

21.2.2 修改代码以支持扩展串口425

21.2.3 测试扩展串口429

第22章 网卡驱动程序移植431

22.1 CS8900A网卡驱动程序移植431

22.1.1 CS8900A网卡特性431

22.1.2 CS8900A网卡驱动程序修改432

22.2 DM9000网卡驱动程序移植441

22.2.1 DM9000网卡特性441

22.2.2 DM9000网卡驱动程序修改442

第23章 IDE接口和SD卡驱动程序移植450

23.1 IDE接口驱动程序移植450

23.1.1 IDE接口相关概念介绍450

23.1.2 IDE接口驱动程序移植452

23.1.3 IDE接口驱动程序测试461

23.2 SD卡驱动程序移植464

23.2.1 SD卡相关概念介绍464

23.2.2 SD卡驱动程序移植465

23.2.3 SD卡驱动程序测试472

23.2.4 磁盘分区表473

第24章 LCD和USB驱动程序移植475

24.1 LCD驱动程序移植475

24.1.1 LCD和USB键盘驱动程序框架475

24.1.2 S3C2410/S3C2440 LCD控制器驱动程序移植479

24.2 USB驱动程序移植489

24.2.1 USB驱动程序概述489

24.2.2 配置内核支持USB键盘、USB鼠标和USB硬盘491

24.2.3 USB设备的使用492

第5篇 嵌入式Linux系统应用开发篇第25章 基于Qtopia的GUI开发496

25.1 嵌入式GUI介绍496

25.1.1 Linux桌面GUI系统的发展496

25.1.2 嵌入式Linux中的几种GUI499

25.2 Qtopia移植501

25.2.1 主机开发环境的搭建501

25.2.2 交叉编译、安装Qtopia 2.2.0502

25.2.3 开发自己的Qt GUI程序514

25.2.4 在主机上使用模拟软件开发、调试嵌入式Qt GUI程序518

第26章 基于X的GUI开发524

26.1 X Window概述524

26.1.1 X协议介绍524

26.1.2 窗口管理器(Window manager)526

26.1.3 桌面环境(Desktop environment)526

26.2 交叉编译工具包Scratchbox526

26.2.1 Scratchbox介绍527

26.2.2 安装Scratchbox及编译工具528

26.2.3 在Scratchbox里安装交叉编译工具链529

26.2.4 安装其他开发工具535

26.3 移植X536

26.3.1 编译软件的基本知识536

26.3.2 编译X的依赖软件539

26.3.3 编译Xorg542

26.4 移植Matchbox547

26.4.1 下载源代码548

26.4.2 编译Matchbox548

26.4.3 运行、试验Matchbox550

26.5 移植GTK+553

26.5.1 GTK+介绍553

26.5.2 GTK+移植553

26.6 移植基于GTK+/X的GUI程序555

26.6.1 xterm移植556

26.6.2 gtkboard移植557

26.6.3 裁剪文件系统560

第27章 Linux应用程序调试技术564

27.1 使用strace工具跟踪系统调用和信号564

27.1.1 strace介绍及移植564

27.1.2 使用strace来调试程序565

27.2 内存调试工具568

27.2.1 使用memwatch进行内存调试568

27.2.2 其他内存工具介绍:mtrace、dmalloc、yamd571

27.3 段错误的调试方法573

27.3.1 使用库函数backtrace和backtrace_symbols定位段错误573

27.3.2 段错误调试实例574

参考文献578

热门推荐