图书介绍

嵌入式系统原理与设计 第2版PDF|Epub|txt|kindle电子书版本网盘下载

嵌入式系统原理与设计 第2版
  • 陈文智,王总辉主编 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302460787
  • 出版时间:2017
  • 标注页数:449页
  • 文件大小:143MB
  • 文件页数:464页
  • 主题词:微型计算机-系统设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

嵌入式系统原理与设计 第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

热门推荐