《Linux嵌入式实时应用开发实战 原书第3版》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)阿伯特著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2015
  • ISBN:9787111488576
  • 页数:210 页
图书介绍:本书介绍目前广泛应用于嵌入式产品的Linux系统开发,包括Linux系统特性、环境配置、交叉开发环境中的应用编程,以及Linux开发组件和工具,并辅以相关参考资料,对于初次在嵌入式和实时领域应用Linux的工程技术人员来说,是一本十分详尽的指导书。

第一部分 入门指导 2

第1章 嵌入式和实时空间 2

1.1 什么是嵌入式 2

1.2 什么是实时 3

1.3 为什么Linux适用 3

1.3.1 开源 4

1.3.2 移植和定制 5

1.4 哪里用嵌入式Linux 5

1.5 开源协议 6

1.6 资源 8

第2章 安装Linux 9

2.1 发行版 9

2.1.1 Debian GNU/Linux 10

2.1.2 Fedora 10

2.1.3 RedHat企业版Linux 11

2.1.4 SUSE 11

2.1.5 Ubuntu 11

2.2 硬件需求 12

2.3 安装方案 12

2.3.1 单机版 12

2.3.2 双启动 12

2.3.3 虚拟化 15

2.4 DVD还是激活CD 15

2.5 安装过程 15

2.5.1 磁盘分区 16

2.5.2 包的选择 17

2.6 资源 18

第3章 Linux入门 19

3.1 运行Linux——KDE 19

3.1.1 文件管理器 20

3.1.2 shell窗口 20

3.2 Linux属性 21

3.3 保护模式架构 22

3.3.1 实模式 22

3.3.2 保护模式 23

3.3.3 平面与分段的存储器模型 24

3.3.4 分页 24

3.4 Linux进程模型 25

3.4.1 fork()函数 25

3.4.2 execve()函数 27

3.5 Linux文件系统 27

3.5.1 文件权限 28

3.5.2 “根”用户 29

3.5.3 /proc文件系统 29

3.5.4 文件系统等级标准 30

3.5.5 挂载文件系统 32

3.6 系统配置 33

3.7 shell 33

3.8 获得帮助 36

3.9 资源 37

第4章 主机开发环境 38

4.1 交叉开发工具——GNU工具链 38

4.1.1 GCC 38

4.1.2 make 39

4.1.3 GDB 40

4.2 安装软件 40

4.2.1 DVD上有什么 40

4.2.2 安装交叉工具链 41

4.2.3 安装根文件系统 42

4.3 终端仿真器minicom 42

4.4 网络 44

4.4.1 网络地址 44

4.4.2 无线怎么样 46

4.4.3 网络文件系统 47

4.4.4 普通文件传输协议 48

4.5 资源 49

第5章 硬件 50

5.1 嵌入式硬件 50

5.2 ARM单板计算机 50

5.3 其他的板怎么样 51

5.3.1 BeagleBoard 51

5.3.2 Gumstix 52

5.3.3 Raspberry Pi 53

5.4 设置Mini2440 53

5.5 Flash存储器和文件系统 54

5.5.1 Flasn存储器——NAND和NOR 54

5.5.2 Flash中的根文件系统 55

5.6 板的准备工作 56

5.6.1 例程 56

5.6.2 factory_images 57

5.6.3 脚本文件 57

5.6.4 过程 58

5.6.5 最后几步 60

5.6.6 哪里会出错 61

5.7 boot loader 61

5.8 资源 62

第6章 Eclipse集成开发环境 63

6.1 概述 63

6.1.1 插件 65

6.1.2 工作台 66

6.2 安装 67

6.3 使用Eclipse 67

6.4 C开发环境——CDT 68

6.4.1 创建一个新工程 68

6.4.2 给工程添加源代码 69

6.4.3 编程助手 70

6.4.4 代码模板 71

6.4.5 自动补齐 71

6.5 程序 71

6.6 生成工程 72

6.7 使用CDT调试 72

6.7.1 调试视图 74

6.7.2 变量视图 75

6.7.3 断点视图 75

6.7.4 存储器视图 75

6.8 完成调试 76

6.9 总结 76

6.10 资源 76

第二部分 交叉开发环境中的应用编程第7章 从用户空间访问硬件 78

7.1 回顾 78

7.2 ARM I/O架构 78

7.3 我们的第一个程序——从Linux访问I/O 80

7.3.1 创建一个工程 80

7.3.2 目标执行环境 81

7.4 led程序 82

7.5 一个数据采集的例子 84

7.6 资源 86

第8章 调试嵌入式软件 87

8.1 使用Eclipse进行远程调试 87

8.2 thermostat 91

8.3 主机工作站作为调试环境 92

8.4 调试器服务框架(DSF) 96

8.4.1 安装SSH 96

8.4.2 为根添加一个口令 98

8.4.3 配置RSE 98

8.4.4 使用RSE调试 100

8.5 资源 101

第9章 Posix线程 102

9.1 线程 103

9.2 同步——互斥量 105

9.2.1 互斥量属性 106

9.2.2 解决资源共享问题而引入的问题——优先级倒置 107

9.3 通信——条件变量 109

9.4 线程终止和取消 109

9.5 Pthread实现 111

9.6 更新thermostat 113

9.6.1 Linux设备驱动 113

9.6.2 底层I/O API 114

9.6.3 thermostat.c中需要的改变 115

9.7 调试多线程程序 116

9.8 资源 116

第10章 嵌入式网络 117

10.1 Sockets 117

10.1.1 服务器进程 118

10.1.2 客户进程 118

10.1.3 socket属性 119

10.2 一个简单的例子 119

10.2.1 服务器 119

10.2.2 客户 120

10.3 远程thermostat 121

10.4 嵌入式网络服务器 123

10.4.1 HTTP的背景 123

10.4.2 使用了网络的thermostat 124

10.4.3 动态网络内容 125

10.4.4 表单和POST方法 126

10.4.5 生成和尝试 126

10.5 一个“真正的”网络服务器——boa 127

10.6 嵌入式E-mail 128

10.7 其他应用级协议 131

10.8 资源 131

第11章 配置和生成内核 132

11.1 开始 132

11.1.1 内核版本编号 133

11.1.2 内核源树 133

11.2 内核makefile 135

11.3 修补内核 135

11.4 配置内核——make config、menuconfig、xconfig 136

11.4.1 xconfig选项 140

11.4.2 .config文件 140

11.5 表象背后——真正发生了什么 141

11.6 生成内核 142

11.7 引导新内核 143

11.8 资源 144

第12章 内核模块和设备驱动 145

12.1 内核模块 145

12.1.1 一个模块的例子 146

12.1.2 破坏内核 147

12.1.3 内核模块和GPL 148

12.1.4 生成内核模块 148

12.1.5 模块的作用 149

12.2 什么是设备驱动 150

12.3 Linux设备驱动 151

12.3.1 /dev目录 151

12.3.2 底层用户空间I/O API 152

12.3.3 内部驱动结构 152

12.3.4 驱动数据结构 152

12.3.5 init()和exit() 153

12.3.6 open()和release() 154

12.3.7 read()和write() 154

12.3.8 生成和运行驱动 155

12.4 调试内核代码 156

12.4.1 printk 156

12.4.2 /proc文件 157

12.5 处理中断 158

12.5.1 注册中断handler 159

12.5.2 探测中断 160

12.5.3 延迟处理——“bottom half” 161

12.6 将你的驱动生成至内核 162

12.7 资源 164

第三部分 组件和工具 166

第13章 BusyBox和Linux初始化 166

13.1 BusyBox简介 166

13.2 配置和安装BusyBox 167

13.2.1 BusyBox设置 169

13.2.2 小程序 169

13.2.3 生成和安装 170

13.3 使用BusyBox 171

13.4 thermostat显示示例 171

13.4.1 ANSI终端Escape序列 172

13.4.2 thermostat显示 172

13.4.3 ncurses库 173

13.5 用户空间初始化 173

13.5.1 第一步boot loader 173

13.5.2 u-boot 173

13.5.3 Linux内核 174

13.5.4 init进程 174

13.6 资源 175

第14章 u-boot boot loader和准备发布 176

14.1 u-boot 176

14.1.1 背景 176

14.1.2 安装和配置u-boot 177

14.1.3 测试一个新的u-boot 178

14.1.4 通过JTAG重新编程NOR 178

14.2 创建一个flash文件系统 179

14.2.1 关于flash分区的更多考虑 180

14.2.2 扁平设备树 181

14.3 资源 182

第15章 源代码控制——git 183

15.1 背景 183

15.2 git介绍 184

15.2.1 文件状态和生命周期 186

15.2.2 分支和合并 187

15.3 配置git 188

15.4 图形化git 189

15.5 资源 192

第16章 build工具 193

16.1 Buildroot 193

16.2 开源嵌入式 195

16.2.1 开始 196

16.2.2 个人观点 197

16.3 安卓 197

16.3.1 应用开发 198

16.3.2 平台开发 199

16.4 总结 199

16.5 资源 200

附录A u-boot命令 201

附录B 为什么软件不应该有版权 207