嵌入式Linux系统开发及应用教程PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:金伟正编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2017
- ISBN:9787302476085
- 页数:308 页
第1章 绪论 1
1.1 嵌入式系统概述 1
1.1.1 嵌入式系统的历史 1
1.1.2 嵌入式系统的特点 2
1.1.3 嵌入式处理器 2
1.1.4 嵌入式系统的发展趋势 3
1.2 嵌入式系统开发 4
1.2.1 需求分析及概要设计 4
1.2.2 嵌入式系统中的硬件及软件 6
1.2.3 嵌入式系统开发的一般过程 7
1.3 嵌入式操作系统 16
1.3.1 嵌入式操作系统的分类 16
1.3.2 嵌入式操作系统的特点 17
1.3.3 典型的嵌入式操作系统 18
1.3.4 嵌入式操作系统的选择 21
1.4 本章小结 21
1.5 思考题 22
第2章 Linux基础知识 23
2.1 认识Linux操作系统 23
2.1.1 Linux简明历史 23
2.1.2 Linux系统的特点和组成 25
2.1.3 Linux的开发过程 26
2.2 基本操作命令 28
2.2.1 字符界面简介 28
2.2.2 常用命令简介 28
2.3 Linux文件与目录系统 33
2.3.1 Linux文件系统类型介绍 33
2.3.2 Linux目录系统 36
2.4 shell简介 37
2.5 网络服务简介 38
2.5.1 Linux支持的网络协议 38
2.5.2 Linux的网络服务 39
2.6 本章小结 41
2.7 思考题 41
第3章 Linux编程环境 42
3.1 Linux编程环境介绍 42
3.1.1 开发工具环境 42
3.1.2 基于文本模式的开发平台 43
3.1.3 集成开发平台Eclipse+CDT 43
3.1.4 文档帮助环境 44
3.2 常用编辑器 45
3.2.1 VIM编辑器 46
3.2.2 Emacs编辑器 48
3.3 gcc编译器的使用 51
3.3.1 gcc的主要选项 52
3.3.2 GNUC扩展简介 55
3.4 GNU make管理项目 56
3.4.1 make简介 56
3.4.2 编写Makefile文件的规则 57
3.5 GDB调试 61
3.5.1 GDB命令介绍 61
3.5.2 GDB调试例程 65
3.5.3 基于GDB的图形界面调试工具 68
3.6 本章小结 69
3.7 思考题 69
第4章 Linux外壳程序编程 70
4.1 创建和运行外壳程序 70
4.1.1 创建外壳程序 70
4.1.2 运行外壳程序 71
4.2 使用外壳变量 72
4.2.1 给变量赋值 72
4.2.2 读取变量的值 72
4.2.3 位置变量和其他系统变量 72
4.2.4 引号的作用 73
4.3 数值运算命令 74
4.4 条件表达式 77
4.4.1 if表达式 77
4.4.2 case表达式 78
4.5 循环语句 79
4.5.1 for语句 79
4.5.2 while语句 80
4.5.3 until语句 81
4.5.4 repeat语句 82
4.6 shift命令 82
4.7 select语句 83
4.8 函数 83
4.9 shell应用举例 85
4.10 本章小结 89
4.11 思考题 89
第5章 构建嵌入式Linux开发平台 90
5.1 GNU跨平台开发工具链 90
5.1.1 基础知识 90
5.1.2 GNU跨平台开发工具链的建立过程 90
5.2 嵌入式Linux内核 97
5.3 嵌入式Linux根文件系统 98
5.4 Bootloader简介 99
5.5 本章小结 100
5.6 思考题 100
第6章 ARM调试环境 101
6.1 ARM调试工具简介 101
6.1.1 JTAG仿真器 101
6.1.2 Multi-ICE Server 102
6.2 ADS软件调试工具 104
6.2.1 使用Metrowork CodeWarrior for ARM Developer Suite 104
6.2.2 使用RealView Debugger 107
6.2.3 使用AXD Debugger 109
6.3 本章小结 116
6.4 思考题 116
第7章 嵌入式Bootloader技术 117
7.1 Bootloader的基本概念 117
7.1.1 Bootloader的安装点和启动过程 117
7.1.2 Bootloader的模式 118
7.1.3 Bootloader与主机之间的通信方式 118
7.2 Bootloader典型结构框架 119
7.2.1 Bootloader总体流程 119
7.2.2 Bootloader的stage1 120
7.2.3 Bootloader的stage2 122
7.3 典型Bootloader分析和移植 129
7.3.1 Blob 129
7.3.2 U-Boot 133
7.4 其他Bootloader简介 139
7.4.1 Redboot 139
7.4.2 ARMBoot 139
7.4.3 PPCBoot 139
7.5 本章小结 140
7.6 思考题 140
第8章 Linux内核配置 141
8.1 内核概述 141
8.2 嵌入式Linux内核代码结构 142
8.3 内核开发的特点 144
8.3.1 没有libc库 144
8.3.2 GNU C 144
8.3.3 没有内存保护机制 145
8.3.4 不要轻易在内核中使用浮点数 145
8.3.5 容积小而固定的栈 146
8.3.6 同步和并发 146
8.3.7 可移植性的重要性 146
8.4 嵌入式Linux内核的配置 146
8.4.1 Makefile 147
8.4.2 配置文件 151
8.4.3 Linux内核配置选项 154
8.5 配置举例 159
8.6 本章小结 161
8.7 思考题 162
第9章 ARM-Linux内核分析和移植 163
9.1 ARM微处理器 163
9.1.1 RISC体系结构 163
9.1.2 ARM微处理器的类型 164
9.1.3 ARM微处理器的寄存器结构 167
9.1.4 ARM微处理器的指令结构 168
9.2 ARM-Linux内存管理 168
9.2.1 内存管理单元(MMU) 168
9.2.2 ARM-Linux的存储管理机制 169
9.2.3 ARM-Linux存储机制的建立 169
9.2.4 ARM-Linux对进程虚拟空间的管理 173
9.3 ARM-Linux进程管理与调度 176
9.3.1 task_struct数据结构 176
9.3.2 Linux进程的创建、执行和消亡 184
9.3.3 ARM_Linux的进程调度 189
9.4 ARM-Linux中断与中断处理 195
9.4.1 Linux处理中断概述 195
9.4.2 ARM体系程序的执行流程 199
9.4.3 ARM处理器对异常中断的响应及返回过程 199
9.5 Linux驱动程序简介 202
9.5.1 设备的分类 203
9.5.2 设备号 203
9.5.3 设备节点 204
9.5.4 用户空间和内核空间 204
9.6 Linux模块化机制 204
9.6.1 Linux的模块化 204
9.6.2 模块的载入 206
9.6.3 模块的卸载 207
9.7 ARM-Linux系统启动与初始化 207
9.7.1 内核数据结构的初始化 207
9.7.2 外设初始化 212
9.7.3 init进程和linittab文件 213
9.7.4 rc启动脚本 214
9.7.5 shell的启动 214
9.8 ARM-Linux内核裁减 215
9.9 ARM-Linux移植 217
9.9.1 移植准备 218
9.9.2 移植步骤 218
9.9.3 配置内核选项 218
9.9.4 修改Kernel文件系统部分代码 219
9.10 本章小结 221
9.11 思考题 222
第10章 嵌入式文件系统 223
10.1 Linux文件系统结构与特征 223
10.1.1 Linux文件系统概述 223
10.1.2 Linux文件系统布局 223
10.1.3 Linux支持的文件系统 229
10.2 嵌入式文件系统简介 231
10.2.1 NOR Flash与NAND Flash介绍 231
10.2.2 MTD介绍 232
10.2.3 cramfs文件系统简介 234
10.2.4 romfs文件系统简介 235
10.2.5 JFFS文件系统简介 237
10.2.6 YAFFS文件系统简介 238
10.3 构建根文件系统 239
10.4 根文件系统设置 241
10.5 BusyBox 243
10.5.1 BusyBox简介 243
10.5.2 使用BusyBox构建根文件系统 244
10.6 嵌入式文件系统的设计 246
10.6.1 文件系统格式的选型的基本策略 246
10.6.2 混合型文件系统的设计 247
10.7 本章小结 248
10.8 思考题 249
第11章 嵌入式Linux多线程编程 250
11.1 线程基本概念 250
11.1.1 Linux线程简介 250
11.1.2 Linux线程编程基础 251
11.2 多线程同步 254
11.2.1 互斥锁 254
11.2.2 条件变量 257
11.2.3 信号量 258
11.3 生产者-消费者问题 262
11.3.1 生产者-消费者问题简介 262
11.3.2 生产者-消费者问题实例 262
11.4 本章小结 266
11.5 思考题 266
第12章 嵌入式Web服务器设计 267
12.1 TCP/IP协议 267
12.1.1 TCP/IP协议栈 267
12.1.2 TCP/IP协议栈的数据流向 268
12.1.3 TCP协议与UDP协议 268
12.2 HTTP协议 270
12.2.1 HTTP协议的方法 270
12.2.2 HTTP协议消息头 272
12.2.3 HTTP协议使用举例 273
12.2.4 内核网络服务 274
12.3 socket编程基础 274
12.3.1 socket描述 274
12.3.2 socket描述符 275
12.4 嵌入式Web服务器介绍 276
12.4.1 协议标准 276
12.4.2 瘦Web服务器 276
12.4.3 嵌入式应用接口技术 277
12.4.4 实现形式 278
12.4.5 RomPager 278
12.4.6 EMIT 279
12.5 Web服务器构建 279
12.6 本章小结 282
12.7 思考题 283
第13章 嵌入式Linux的GUI 284
13.1 嵌入式GUI简介 284
13.1.1 MiniGUI 285
13.1.2 Qt/Embedded 285
13.1.3 Nano-X 286
13.1.4 OpenGUI 286
13.2 MiniGUI程序设计基础 287
13.2.1 MiniGUI V1.3.3软件包 287
13.2.2 MiniGUI的特点 288
13.2.3 窗口处理过程 290
13.2.4 MiniGUI的线程机制 291
13.2.5 MiniGUI的体系结构 292
13.2.6 MiniGUI的底层引擎 293
13.2.7 MiniGUI的三种运行模式 293
13.2.8 MiniGUI移植 294
13.3 Qt/Embedded程序设计基础 296
13.3.1 Qt/Embedded图形引擎实现基础 298
13.3.2 Qt/Embedded事件驱动基础 299
13.3.3 Qt/Embedded底层支持分析 300
13.3.4 Qt/Embedded移植 300
13.4 本章小结 305
13.5 思考题 306
参考文献 307
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《AutoCAD 2019 循序渐进教程》雷焕平,吴昌松,陈兴奎主编 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019