图书介绍

嵌入式Linux实战教程【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

嵌入式Linux实战教程
  • 河源职业技术学院 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7121229237
  • 出版时间:2014
  • 标注页数:377页
  • 文件大小:163MB
  • 文件页数:393页
  • 主题词:

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

1.1 嵌入式介绍1

1.1.1 嵌入式系统定义1

1.1.2 嵌入式操作系统1

1.1.3 常见的嵌入式操作系统3

1.2 虚拟机及Linux系统安装5

1.2.1 安装VMware Workstation软件5

1.2.2 在VMware Workstation虚拟机安装Red Hat Linux系统6

1.3 Linux常用命令13

1.3.1 系统询问命令13

1.3.2 文件操作命令14

1.3.3 目录操作命令15

1.3.4 口令、权限命令16

1.3.5 文件压缩命令17

1.3.6 网络相关命令18

1.3.7 其他命令18

1.4 Linux下的编辑工具19

1.4.1 编辑器分类19

1.4.2 VIM的使用19

1.5 主机开发环境的配置23

1.5.1 超级终端配置图解23

1.5.2 Minicom配置26

1.5.3 TFTP服务28

1.5.4 NFS服务29

1.5.5 Telnet服务30

1.6 Red Hat下通过安装镜像文件使用yum安装软件30

1.6.1 修改yum配置文件30

1.6.2 安装卸载软件的方法30

1.7 Makefile编写规则31

1.7.1 Makefile简介31

1.7.2 Makefile的基本结构31

1.7.3 Makefile中的变量33

1.7.4 Makefile的隐含规则34

1.8 交叉编译工具基础知识35

1.8.1 交叉编译工具链的安装36

1.8.2 arm-linux-gcc选项37

1.8.3 arm-linux-ld选项38

1.8.4 arm-linux-objcopy39

1.8.5 arm-linux-objdump39

1.9 小知识39

第2章 BootLoader移植与开发41

2.1 U-Boot的目录结构41

2.1.1 BootLoader简介41

2.1.2 常用BootLoader介绍42

2.1.3 U-Boot 1.3.4 目录介绍43

2.2 U-Boot的制作过程44

2.3 U-Boot运行过程57

2.3.1 程序启动过程57

2.3.2 U-Boot的两个阶段58

2.4 U-Boot源码分析59

2.5 U-Boot应用:主要用于启动内核进行准备工作90

2.5.1 U-Boot的应用90

2.5.2 BootLoader与内核的交互90

2.6 U-Boot的重要数据结构90

2.6.1 gd全局数据变量指针91

2.6.2 bd电路板数据指针91

2.6.3 环境变量指针92

2.6.4 设备相关设置92

2.6.5 命令结构体类型定义93

第3章 Linux内核裁剪95

3.1 嵌入式Linux内核启动过程95

3.1.1 Linux版本及特点95

3.1.2 内核代码初始化分析96

3.1.3 setup_arch()函数分析99

3.1.4 rest_init()函数分析102

3.1.5 挂接根文件系统104

3.1.6 初始化设备驱动程序105

3.2 Linux内核源码目录介绍108

3.3 Linux内核配置系统分析110

3.3.1 内核中的Kconfig文件介绍112

3.3.2 Linux内核源码Makefile文件分析113

3.4 针对S3C2440开发板移植内核的过程115

3.5 添加驱动程序到内核源码120

第4章 根文件系统移植与制作122

4.1 分析Linux文件系统层次标准122

4.2 根文件系统各目录作用122

4.3 移植Busybox开源代码、构造根文件系统123

4.3.1 Busybox的诞生123

4.3.2 Busybox许可证124

4.3.3 POSIX环境124

4.4 制作Linux根文件系统125

4.4.1 下载并配置安装Busybox125

4.4.2 完善根文件系统128

4.4.3 通过NFS服务测试文件系统130

第5章 Linux驱动介绍131

5.1 驱动原理131

5.2 内核模块的主要相关命令131

5.3 设备分类131

5.4 设备驱动程序工作原理132

5.5 应用程序、库、内核、驱动程序的软件关系132

5.6 Linux驱动程序开发步骤132

5.7 驱动程序的加载和卸载133

5.8 关键概念133

5.8.1 不可剥夺型内核(non-preemptive kernel)(分时操作系统内核)133

5.8.2 可剥夺型内核(preemptive kernel)(实时操作系统内核)134

5.8.3 可重入函数134

5.8.4 资源134

5.8.5 共享资源134

5.8.6 代码的临界段134

5.8.7 实时系统的特点134

5.8.8 死锁135

5.8.9 Linux的进程状态描述135

5.8.1 0 Linux内核的三种调度方法135

5.8.1 1 所有任务都采用Linux分时调度策略时136

5.8.1 2所有任务都采用FIFO调度策略时136

5.8.1 3所有任务都采用RR调度策略时137

5.8.1 4进程调度依据(系统进程调度原理)137

5.8.1 5描述进程的数据结构task_struct(任务结构体)139

5.8.1 6 Linux使用内核函数goodness()对进程进行加权处理139

5.9 中断与异常141

5.9.1 Linux异常处理体系结构概述141

5.9.2 中断注册方法144

5.1 0并发和竞态144

5.1 0.1 并发及其管理145

5.1 0.2 信号量和互斥体145

5.1 0.3 自旋锁147

第6章 字符设备驱动开发150

6.1 主设备号和次设备号150

6.2 重要数据结构150

6.2.1 file_operations结构150

6.2.2 file结构154

6.3 字符设备注册方式154

6.3.1 早期版本的字符设备注册(2.6 版本以前)154

6.3.2 杂项(miscdevice)设备注册155

6.3.3 Linux 2.6 的版本设备注册155

6.4 打印信息164

6.5 高级字符驱动程序操作165

6.5.1 ioctl165

6.5.2 定位设备(llseek实现)167

6.5.3 休眠167

6.5.4 阻塞和非阻塞操作169

6.5.5 poll和select170

6.5.6 与read和write的交互171

6.5.7 刷新待处理输出172

6.6 异步通知172

6.7 内核同步机制174

6.7.1 原子操作174

6.7.2 信号量(semaphore)176

6.7.3 自旋锁(spinlock)177

第7章 LED驱动开发与应用编程182

7.1 LED驱动程序(xyd2440_leds.c)182

7.2 LED驱动程序的Makefile185

7.3 LED驱动测试程序(leds_app.c)185

7.4 操作步骤186

第8章 按键驱动开发与应用编程188

8.1 按键的硬件原理188

8.2 按键驱动中的数据结构188

8.3 按键驱动的模块加载函数和卸载函数189

8.4 按键设备驱动中断处理程序190

8.5 按键设备驱动的打开函数和释放函数190

8.6 按键设备驱动的读函数192

8.7 按键驱动程序范例193

8.8 操作步骤199

第9章 LCD驱动开发实例分析201

9.1 FrameBuffer的原理201

9.2 FrameBuffer在Linux中的实现和机制202

9.3 Linux内核中的platform机制207

9.4 S3C2440 LCD驱动分析209

9.5 S3C2440LCD驱动移动移植228

9.5.1 代码修改228

9.5.2 修改Kconfig——添加新屏支持到内核菜单231

9.5.3 修改内核配置232

9.6 FrameBuffer应用例子234

9.6.1 应用程序源码234

9.6.2 操作步骤235

第10章 输入子系统和触摸屏237

10.1 认识输入子系统237

10.1.1 为什么需要输入子系统237

10.1.2 相关API237

10.1.3 一个简单的按键驱动的例子240

10.2 触摸屏驱动分析241

10.2.1 Linux内核定时器241

10.2.2 触摸屏驱动代码分析243

10.3 触摸屏的校准249

10.3.1 触摸屏的校准介绍249

10.3.2 tslib库的编译使用250

10.3.3 将tslib校准引用到自己的项目中251

第11章 网络驱动开发与应用编程253

11.1 TCP/IP概述253

11.1.1 TCP/IP族254

11.1.2 TCP和UDP254

11.2 TCP/IP网络基础编程255

11.2.1 socket概述255

11.2.2 地址及顺序处理256

11.2.3 socket基础编程261

11.3 DM9000网卡驱动程序移植273

11.3.1 DM9000网卡特性273

11.3.2 DM9000网卡与S3C2440硬件连接274

11.3.3 DM9000与开发板接口定义275

11.3.4 DM9000驱动移植到S3C2440的步骤276

11.4 DM9000网卡驱动源码解析278

11.4.1 两个重要的结构体的简单介绍:sk_buff和net_device278

11.4.2 驱动代码具体分析285

11.4.3 dm9000_netdev_ops和dm9000_ethtod_ops286

11.4.4 平台设备驱动的结构体定义288

11.4.5 驱动初始化函数288

11.4.6 probe函数289

11.4.7 remove函数:设备的删除函数304

11.4.8 打开、关闭函数和操作函数305

第12章 基于Qt Creator环境的Qt开发321

12.1 概要说明321

12.2 安装步骤321

12.3 QtCreator测试325

12.4 Qt Ctreator中配置ARM版本交叉编译环境328

12.5 交叉编译ARM版本Qt4程序332

第13章 产品封装、发布335

13.1 Linux内核镜像格式335

13.2 Linux内核镜像的产生过程336

13.3 嵌入式Linux常用文件系统336

13.4 制作常用的文件系统镜像338

13.4.1 制作Cramfs文件系统和部署338

13.4.2 制作JFFS2文件系统镜像和部署339

13.4.3 制作YAFFS2文件系统镜像和部署340

第14章 S3C6410平台Linux环境搭建342

14.1 概述342

14.2 编译器的安装342

14.3 编译U-Boot和内核342

14.3.1 编译U-Boot342

14.3.2 编译内核343

14.4 烧写内核到NAND Flash344

14.4.1 制作用于一键烧写Linux的SD卡344

14.4.2 烧写Linux到开发板的NAND Flash中347

14.5 文件程序或文件下载到开发板中350

14.5.1 通过超级终端下载350

14.5.2 通过SD卡复制352

附录A Linux开发平台硬件介绍355

A.1 S3C2440系列芯片介绍355

A.2 S3C2440开发板硬件设计说明357

A.2.1 电源设计357

A.2.2 复位电路358

A.2.3 系统时钟电路358

A.2.4 JTAG接口电路358

A.2.5 GPIO电路、指示灯电路、按键电路359

A.2.6 蜂鸣器电路360

A.2.7 串口电路360

A.2.8 A/D和D/A电路361

A.2.9 外部Flash芯片362

A.2.10 SD卡接口电路362

A.2.11 SDARM芯片模块363

A.2.12 NOR Flash芯片模块364

A.2.13 NAND Flash芯片模块364

A.2.14 USB接口365

A.2.15 网络模块365

A.2.16 音频输入与输出电路365

A.2.17 LCD接口和CMOS摄像接口367

A.2.18 系统总线接口368

A.2.19 开发板完整原理图368

附录B JTAG仿真调试器下载程序的过程369

附录C J-Link仿真调试器的使用371

附录D Linux常用命令介绍375

参考文献377

热门推荐