图书介绍
嵌入式系统原理与设计 第2版PDF|Epub|txt|kindle电子书版本网盘下载
![嵌入式系统原理与设计 第2版](https://www.shukui.net/cover/42/30454858.jpg)
- 陈文智,王总辉主编 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302460787
- 出版时间:2017
- 标注页数:449页
- 文件大小:143MB
- 文件页数:464页
- 主题词:微型计算机-系统设计
PDF下载
下载说明
嵌入式系统原理与设计 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
上篇 原理部分3
第1章 嵌入式系统概述3
1.1嵌入式系统简介3
1.1.1嵌入式系统历史与现状3
1.1.2嵌入式系统体系结构4
1.1.3应用领域和发展方向5
1.2嵌入式处理器6
1.2.1嵌入式处理器简介6
1.2.2 ARM处理器的应用领域及一般特点7
1.2.3 ARM处理器系列7
1.3嵌入式操作系统8
1.3.1嵌入式操作系统简介8
1.3.2嵌入式Linux8
1.3.3 VxWorks9
1.3.4 μC/ OS- Ⅱ10
1.3.5 Windows CE10
1.3.6 Symbian11
1.3.7 Android11
1.3.8 iOS11
1.3.9其他嵌入式操作系统12
1.4嵌入式系统设计12
1.4.1嵌入式系统设计过程12
1.4.2硬件设计平台的选择13
1.4.3软件设计平台的选择14
1.4.3嵌入式应用软件开发16
1.4.5测试和优化17
小结17
进一步探索17
第2章ARM处理器和指令集18
2.1 ARM处理器简介18
2.1.1 ARM公司和ARM产品简介18
2.1.2 ARM指令集体系结构版本18
2.1.3 ARM处理器系列20
2.2 ARM指令集简介22
2.2.1 RISC简介22
2.2.2 ARM状态和Thumb状态22
2.2.3 ARM指令类型和指令的条件域23
2.3 ARM指令的寻址方式27
2.3.1立即寻址27
2.3.2寄存器寻址27
2.3.3寄存器偏移寻址27
2.3.4寄存器间接寻址28
2.3.5基址变址寻址28
2.3.6多寄存器寻址28
2.3.7堆栈寻址29
2.3.8相对寻址29
2.4 ARM指令简介30
2.4.1跳转指令30
2.4.2通用数据处理指令32
2.4.3乘法指令35
2.4.4 Load/Store内存访问指令37
2.4.5 ARM协处理器指令40
2.4.6杂项指令42
2.4.7饱和算术指令43
2.4.8 ARM伪指令44
2.5 Thumb指令简介46
2.5.1 Thumb跳转指令46
2.5.2 Thumb通用数据处理指令47
2.5.3 Thumb算术指令49
2.5.4 Thumb内存访问指令51
2.5.5 Thumb软中断和断电指令53
2.5.6 Thumb伪指令53
小结54
进一步探索54
第3章 嵌入式Linux操作系统55
3.1嵌入式Linux简介55
3.1.1 μ…CLinux55
3.1.2 RT-Linux56
3.1.3红旗嵌入式Linux56
3.2内存管理56
3.2.1内存管理和MMU56
3.2.2标准Linux的内存管理57
3.2.3RT-Linux的内存管理58
3.3进程管理59
3.3.1进程和进程管理59
3.3.2 RT-Linux的进程管理60
3.3.3标准Linux的进程管理61
3.3.4 μCLinux的进程管理62
3.4文件系统63
3.4.1文件系统定义63
3.4.2 Linux文件系统63
3.4.3嵌入式Linux文件系统64
小结69
进一步探索69
第4章 嵌入式软件编程技术70
4.1嵌入式编程基础70
4.1.1嵌入式汇编语言基础70
4.1.2嵌入式高级编程知识71
4.1.3嵌入式开发工程73
4.2嵌入式汇编编程技术76
4.2.1基本语法76
4.2.2汇编语言程序设计案例79
4.3嵌入式高级编程技术80
4.3.1函数可重入80
4.3.2中断处理过程81
4.4高级语言与汇编语言混合编程81
4.4.1高级语言与汇编语言混合编程概述81
4.4.2汇编程序调用C程序82
4.4.3 C程序调用汇编程序83
小结84
进一步探索84
第5章 开发环境和调试技术85
5.1交叉开发模式概述85
5.2宿主机环境86
5.2.1串口终端86
5.2.2 BOOTP87
5.2.3 TFTP87
5.2.4交叉编译87
5.3目标板环境88
5.3.1 J TAG接口简介88
5.3.2 Boot Loader简介88
5.4交叉编译工具链88
5.4.1交叉编译的构建89
5.4.2相关工具89
5.5 gdb调试器92
5.6远程调试96
5.6.1远程调试原理96
5.6.2 gdb远程调试功能97
5.6.3使用gdbserver98
5.7内核调试101
5.7.1内核调试技术101
5.7.2 kgdb内核调试103
5.8网络调试104
小结106
进一步探索106
第6章Boot Loader技术107
6.1 Boot Loader基本概念107
6.1.1 Boot Loader所支持的硬件环境107
6.1.2 Boot Loader的安装地址107
6.1.3 Boot Loader相关的设备和基址108
6.1.4 Boot Loader的启动过程108
6.1.5 Boot Loader的操作模式108
6.1.6 Boot Loader与主机之间的通信设备及协议108
6.2 Boot Loader典型结构109
6.2.1 Boot Loader阶段1介绍109
6.2.2 Boot Loader阶段2介绍110
6.2.3关于串口终端117
6.3 U-Boot简介117
6.3.1认识U-Boot117
6.3.2 U-Boot特点117
6.3.3 U-Boot代码结构分析118
6.4 vivi简介129
6.4.1认识ViVi129
6.4.2 vivi代码导读129
小结137
进一步探索137
第7章ARM-Linux内核138
7.1 ARM-Linux内核简介138
7.1.1 ARM-Linux内核和普通Linux内核的区别138
7.1.2 ARM-Linux的版本控制139
7.1.3 ARM-Linux的代码结构139
7.2 ARM-Linux内存管理140
7.2.1影响内存管理的两个方面140
7.2.2 ARM-Linux的存储机制141
7.2.3虚拟内存144
7.3 ARM-Linux进程管理和调度147
7.3.1进程的表示和生命周期147
7.3.2 Linux进程的创建、执行和销毁149
7.3.3 Linux进程的调度152
7.4 ARM-Linux模块机制153
7.4.1 Linux模块概述154
7.4.2模块代码结构155
7.4.3模块的加载155
7.4.4模块的卸载156
7.4.5版本依赖157
7.5 ARM-Linux中断管理157
7.6 ARM-Linux系统调用161
7.7 ARM-Linux系统启动和初始化163
7.7.1使用Boot Loader将内核映像载入163
7.7.2内核数据结构初始化——内核引导第一部分163
7.7.3外设初始化——内核引导第二部分164
7.7.4 init进程和inittab脚本165
7.7.5 rc启动脚本166
7.7.6 Shell的启动166
小结167
进一步探索167
第8章 文件系统168
8.1嵌入式文件系统简介168
8.1.1 Linux文件系统简介168
8.1.2嵌入式文件系统简介169
8.2嵌入式Linux文件系统框架170
8.3 JFFS2嵌入式文件系统172
8.3.1目录节点的定义173
8.3.2数据节点174
8.3.3可靠性支持174
8.3.4内存使用175
8.3.5垃圾收集176
8.3.6写平衡177
8.3.7 JFFS2的不足之处177
8.3.8 JFFS3简介177
8.4根文件系统178
8.4.1什么是根文件系统178
8.4.2建立JFFS2根文件系统178
小结182
进一步探索182
第9章 设备驱动程序设计基础183
9.1 Linux设备驱动程序简介183
9.1.1设备的分类184
9.1.2设备文件184
9.1.3主设备号和次设备号184
9.1.4 Linux设备驱动代码的分布185
9.1.5 Linux设备驱动程序的特点185
9.2设备驱动程序结构186
9.2.1驱动程序的注册与注销186
9.2.2设备的打开与释放186
9.2.3设备的读写操作187
9.2.4设备的控制操作187
9.2.5设备的轮询和中断处理188
9.3 Linux内核设备模型189
9.3.1设备模型建立的目的189
9.3.2 sysfs——设备拓扑结构的文件系统表现189
9.3.3驱动模型和sysfs190
9.3.4 kobject191
9.3.5 platform总线194
9.4同步机制195
9.4.1同步锁195
9.4.2信号量199
9.4.3读写信号量201
9.4.4原子操作202
9.4.5完成事件203
9.4.6时间204
9.5内存映射和管理206
9.5.1物理地址映射到虚拟地址207
9.5.2内核空间映射到用户空间207
9.6工作队列210
9.7异步I/O213
9.8 DMA215
9.8.1 DMA数据传输215
9.8.2 DMA定义215
9.8.3 DMA映射216
小结217
进一步探索217
第10章 字符设备和驱动程序设计218
10.1字符设备驱动框架218
10.2字符设备驱动开发219
10.2.1设备号219
10.2.2关键数据结构222
10.2.3字符设备注册和注销225
10.3 GPIO驱动概述226
10.4串行总线概述227
10.4.1 SPI总线227
10.4.2 I2C总线228
10.4.3 SMBus总线228
10.5 I2 C总线驱动开发229
10.5.1 I2 C驱动架构229
10.5.2关键数据结构230
10.5.3 I2C核心233
10.5.4 I2 C总线驱动234
10.5.5 I2C设备驱动235
小结235
进一步探索236
第11章 块设备和驱动程序设计237
11.1块设备驱动程序设计概要237
11.1.1块设备的数据交换方式237
11.1.2块设备读写请求237
11.2 Linux块设备驱动相关数据结构与函数239
11.2.1 gendisk结构239
11.2.2 request结构240
11.2.3 request_queue队列242
11.2.4 bio结构244
11.3块设备的注册与注销246
11.4块设备初始化与卸载246
11.5块设备操作247
11.6请求处理248
11.7 MMC卡驱动250
11.7.1 MMC/SD芯片介绍250
11.7.2 MMC/SD卡驱动结构255
11.7.3 MMC卡块设备驱动分析255
11.7.4 HSMCI接口驱动设计分析262
小结272
进一步探索272
第12章 网络设备驱动程序开发273
12.1以太网基础知识273
12.1.1 CSMA/CD协议275
12.1.2以太网帧结构276
12.1.3嵌入式系统中常用的络协议277
12.2.嵌入式网络设备驱动开发概述278
12.3网络设备驱动基本数据结构279
12.3.1 net_ device数据结构279
12.3.2 sk_ buffer数据结构282
12.4网络设备初始化283
12.5打开和关闭接口283
12.6数据接收与发送284
12.7查看状态与参数设置285
12.8 AT91SAM9G45网卡驱动286
12.8.1 EMAC模块简介286
12.8.2模块图286
12.8.3功能描述287
12.8.4寄存器描述287
12.8.5 AT91SAM9G45芯片EMAC控制器驱动分析290
小结297
进一步探索297
第13章 嵌入式GUI及应用程序设计298
13.1嵌入式GUI设计概述298
13.1.1嵌入式GUI简介298
13.1.2嵌入式GUI设计需求299
13.1.3嵌入式GUI设计原则299
13.1.4主流嵌入式GUI简介300
13.2嵌入式GUI体系结构设计301
13.2.1嵌入式GUI体系结构301
13.2.2抽象层302
13.2.3核心层302
13.2.4接口层303
13.3基于主流GUI的应用程序设计303
13.3.1 MiniGUI开发环境搭建303
13.3.2基于MiniGUI的应用程序设计306
13.3.3 Android开发环境搭建310
13.3.4基于Android的应用程序设计312
小结316
进一步探索316
下篇 实验部分319
第1章 实验基础319
第2章 开发环境建立333
第3章 内核和模块构建349
第4章 文件系统构建361
第5章 调试技术演练366
第6章 字符设备和驱动程序设计377
第7章 块设备驱动程序设计396
第8章 网络设备驱动程序设计407
第9章MiniGUI应用设计419
第10章Android应用设计430