嵌入式Linux编程PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:(英)克里斯·西蒙兹著;王春雷,梁洪亮,朱华译
- 出 版 社:北京:机械工业出版社
- 出版年份:2017
- ISBN:9787111561286
- 页数:274 页
第1章 概述 1
1.1 选择合适的操作系统 2
1.2 参与者 3
1.3 项目生命周期 4
1.4 开放源码 5
1.5 嵌入式Linux系统硬件 6
1.6 本书使用的硬件 7
1.7 本书使用的软件 9
1.8 总结 9
第2章 学习工具链 10
2.1 工具链是什么 10
2.2 工具链类型:本地工具链和交叉工具链 11
2.3 选择C库 13
2.4 寻找工具链 14
2.5 工具链解析 17
2.6 工具链中的其他工具 20
2.7 查看C库的组件 21
2.8 链接库:静态和动态链接 21
2.9 交叉编译艺术 24
2.10 交叉编译的问题 28
2.11 总结 29
第3章 引导加载程序 30
3.1 引导加载程序都做了些什么 30
3.2 引导序列 31
3.3 使用UEFI固件引导 32
3.4 从引导加载程序到内核 33
3.5 设备树介绍 34
3.6 选择引导加载程序 38
3.7 U-Boot 39
3.8 Barebox 49
3.9 总结 51
第4章 移植与配置内核 52
4.1 内核做了什么 52
4.2 选择内核 53
4.3 内核构建 55
4.4 编译 60
4.5 清理内核源 63
4.6 启动你的内核 63
4.7 将Linux移植到新板上 66
4.8 延伸阅读 69
4.9 总结 69
第5章 构建根文件系统 71
5.1 根文件系统是什么 71
5.2 根文件系统的程序 75
5.3 根文件系统库 78
5.4 设备节点 79
5.5 proc与sysfs文件系统 80
5.6 内核模块 81
5.7 把根文件系统转移到目标 81
5.8 创建启动内存磁盘 82
5.9 init程序 85
5.10 配置用户账号 86
5.11 启动守护进程 87
5.12 管理设备节点的更好方法 88
5.13 配置网络 89
5.14 借助设备表创建文件系统映像 90
5.15 使用NFS挂载根文件系统 92
5.16 使用TFTP加载内核 94
5.17 延伸阅读 95
5.18 总结 95
第6章 选择构建系统 96
6.1 不再手动创建嵌入式Linux 96
6.2 构建系统 96
6.3 包格式和包管理器 98
6.4 Buildroot 98
6.5 Yocto项目 104
6.6 延伸阅读 116
6.7 总结 116
第7章 创建存储策略 117
7.1 存储器选择 117
7.2 从引导加载程序访问闪存 121
7.3 从Linux中访问闪存 122
7.4 闪存文件系统 127
7.5 NOR和NAND闪存的文件系统 128
7.6 托管闪存的文件系统 134
7.7 只读压缩文件系统 138
7.8 临时文件系统 138
7.9 使根文件系统为只读 139
7.10 文件系统选择 140
7.11 现场更新 140
7.12 延伸阅读 142
7.13 总结 143
第8章 设备驱动程序介绍 144
8.1 设备驱动程序的作用 144
8.2 字符设备 145
8.3 块设备 147
8.4 网络设备 147
8.5 在运行时寻找驱动程序 149
8.6 找到正确的设备驱动程序 153
8.7 用户空间中的设备驱动程序 153
8.8 编写内核设备驱动程序 158
8.9 加载内核模块 163
8.10 查找硬件配置 163
8.11 延伸阅读 166
8.12 总结 167
第9章 启动初始化程序 168
9.1 在内核启动后 168
9.2 初始化程序简介 169
9.3 BusyBox init 169
9.4 System V init 171
9.5 systemd 176
9.6 延伸阅读 181
9.7 总结 181
第10章 学习进程和线程 182
10.1 进程还是线程 182
10.2 进程 183
10.3 线程 191
10.4 调度 196
10.5 延伸阅读 200
10.6 总结 200
第11章 内存管理 201
11.1 虚拟内存基础 201
11.2 内核空间内存布局 202
11.3 用户空间内存布局 205
11.4 进程内存映射 206
11.5 交换 207
11.6 用mmap映射内存 208
11.7 我的应用程序使用了多少内存 209
11.8 每个进程的内存使用情况 210
11.9 识别内存泄漏 213
11.10 内存耗尽 215
11.11 延伸阅读 217
11.12 总结 217
第12章 使用GDB调试 218
12.1 GNU调试器:GDB 218
12.2 准备调试 218
12.3 使用GDB调试应用程序 219
12.4 使用gdbserver远程调试 219
12.5 开始调试 221
12.6 调试共享库 224
12.7 即时调试 225
12.8 调试分叉和线程 226
12.9 核心文件 226
12.10 GDB用户界面 228
12.11 调试内核代码 230
12.12 延伸阅读 237
12.13 总结 237
第13章 剖析和跟踪 238
13.1 观察者效应 238
13.2 开始剖析 239
13.3 使用top进行剖析 240
13.4 介绍perf 241
13.5 其他剖析器:OProfile和gprof 245
13.6 跟踪事件 247
13.7 介绍Ftrace 247
13.8 使用LTTng 252
13.9 使用Valgrind剖析应用程序 256
13.10 Callgrind 256
13.11 Helgrind 256
13.12 使用strace显示系统调用 257
13.13 总结 259
第14章 实时编程 260
14.1 什么是实时性 260
14.2 确认非确定性的来源 262
14.3 理解调度延迟 263
14.4 内核抢占 263
14.5 实时Linux内核(PREEMPT_RT) 264
14.6 线程化中断处理程序 264
14.7 可抢占的内核锁 266
14.8 获得PREEMPT_RT补丁 266
14.9 高精度定时器 267
14.10 在实时应用中避免页面错误 268
14.11 中断屏蔽 269
14.12 测量调度延迟 269
14.13 延伸阅读 273
14.14 总结 273
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《编程超有趣 奇妙Python轻松学 第1辑》HelloCode人工智能国际研究组 2018
- 《我的第一套编程启蒙绘本 看事件 开始了》编程猫教研团队编绘 2019
- 《STEM教育丛书 麦昆机器人和Micro:bit图形化编程》张弛责任编辑;(中国)陈宝杰,沙靓雯 2019
- 《ROS机器人编程与SLAM算法解析指南》陶满礼 2020
- 《我的第一套编程启蒙绘本 123 序列来啦》编程猫教研团队编绘 2019
- 《高等院校计算机任务驱动教改教材 C语言编程思维 第2版》(中国)陈萌,鲍淑娣 2019
- 《我的第一套编程启蒙绘本 咦 什么在 循环》编程猫教研团队编绘 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019