当前位置:首页 > 工业技术
嵌入式系统开发原理与实践
嵌入式系统开发原理与实践

嵌入式系统开发原理与实践PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:陈文智等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302116008
  • 页数:299 页
图书介绍:本书介绍嵌入式系统的开发方法,并包含各种实验。
《嵌入式系统开发原理与实践》目录

目录 1

第1章 嵌入式系统概述 1

1.1 引言 1

1.2 什么是嵌入式系统 1

1.2.1 嵌入式系统的历史与现状 2

1.2.2 嵌入式系统的体系结构 2

1.2.3 应用领域与发展方向 3

1.3 嵌入式系统设计 5

1.3.1 嵌入式系统设计的过程 5

1.3.2 硬件平台的选择 5

1.3.3 软件平台的选择 6

1.4 嵌入式微处理器ARM 8

1.4.2 ARM微处理器系列 9

1.4.1 ARM微处理器的应用领域及一般特点 9

1.5 嵌入式操作系统 11

1.5.1 嵌入式Linux 11

1.5.2 Windows CE 12

1.5.3 Symbian 13

1.5.4 其他嵌入式操作系统 13

1.6 嵌入式系统开发 14

1.6.1 开发流程 14

1.6.2 交叉编译与链接 15

1.6.3 远程调试 16

1.6.4 测试与优化 17

1.7 小结 17

1.8 习题与思考题 18

第2章 PXA255开发系统 19

2.1 XScale系统结构 19

2.1.1 XScale超级流水线 20

2.1.2 XScale乘/累加MAC 21

2.1.3 协处理器 21

2.1.4 内存管理 22

2.1.5 指令cache 22

2.1.6 数据cache 23

2.1.7 转移目标缓冲器BTB 23

2.1.8 性能监视 23

2.1.9 电源管理 23

2.1.10 调试 23

2.2 PXA255处理器结构与特性 24

2.2.1 时钟和电源管理模块 26

2.2.2 系统综合单元 28

2.2.3 DMA控制器 33

2.3 XSBase255开发系统 34

2.3.1 硬件资源 35

2.3.2 软件资源 44

2.4 小结 46

2.5 习题与思考题 47

第3章 开发环境的建立 48

3.1 XSBase255目标机环境 48

3.1.1 JTAG接口简介 49

3.1.2 XSBase255上的JTAG接口 49

3.1.3 Boot Loader 50

3.2 宿主机环境 50

3.2.1 宿主机环境的建立 50

3.2.2 BOOTP协议 51

3.2.3 TFTP协议 51

3.2.4 交叉编译 52

3.2.5 Make工具 52

3.3.1 烧写XSBase255的Boot Loader 56

3.3 实验 56

3.3.2 使用Minicom实现串口通信 57

3.3.3 建立开发环境 60

3.3.4 熟悉交叉编译环境和开发工具 65

3.4 小结 68

3.5 习题与思考题 68

第4章 嵌入式系统的Boot Loader技术 69

4.1 Boot Loader程序的基本概念 69

4.1.1 Boot Loader所支持的硬件环境 70

4.1.2 Boot Loader的安装地址 70

4.1.3 Boot Loader相关的设备和机制 70

4.1.4 Boot Loader的启动过程 70

4.1.5 Boot Loader的操作模式 70

4.2 Boot Loader的典型结构框架 71

4.1.6 Boot Loader与主机之间的通信设备及协议 71

4.2.1 Boot Loader阶段1介绍 72

4.2.2 Boot Loader阶段2介绍 74

4.2.3 关于串口终端 81

4.3 Boot Loader实验 81

4.3.1 熟悉Boot Loader的指令 81

4.3.2 U-Boot的分析和移植 87

4.4 小结 97

4.5 习题与思考题 98

第5章 ARM-Linux内核 99

5.1 ARM系统结构简介 99

5.2 ARM-Linux内存管理 101

5.2.1 内存管理与MMU 101

5.2.2 冯·诺依曼结构和哈佛结构 102

5.2.3 ARM存储管理机制 102

5.2.4 ARM-Linux存储机制的建立 105

5.2.5 ARM-Linux进程的虚存空间 108

5.3 ARM-Linux的中断响应和处理 110

5.4 ARM-Linux系统调用 114

5.4.1 应用程序中的系统调用 114

5.4.2 实验:创建和使用一个新的系统调用 116

5.5 系统的启动和初始化 118

5.5.1 使用Boot Loader将内核映像载入 118

5.5.2 内核数据结构初始化——内核引导第一部分 119

5.5.3 外设初始化——内核引导第二部分 120

5.5.4 init进程和inittab脚本 121

5.5.5 rc启动脚本 122

5.5.6 Shell的启动 123

5.6 ARM-Linux进程管理和调度 123

5.6.1 Linux进程和进程控制 123

5.6.2 Linux进程的创建、执行和终止 124

5.7.1 Linux模块概述 128

5.6.3 ARM-Linux进程的调度 128

5.7 Linux的模块机制 128

5.7.2 与模块相关的数据结构 129

5.7.3 与模块相关的系统调用 132

5.7.4 模块的使用 135

5.7.5 对insmodule实现的简要介绍 137

5.7.6 模块的编程 137

5.8 实验:Linux 2.6内核移植 137

5.8.1 准备工作 139

5.8.2 编译交叉编译工具 139

5.8.3 配置Linux 2.6.10内核 139

5.8.4 编译内核 139

5.9 小结 141

5.10 习题与思考题 141

6.1.1 嵌入式文件系统介绍 142

第6章 嵌入式文件系统 142

6.1 嵌入式Linux文件系统简介 142

6.1.2 Linux文件系统概述 144

6.1.3 嵌入式Linux常用文件系统 145

6.2 Linux文件系统框架和特性 148

6.3 实验:建立文件系统 149

6.3.1 建立JFFS2文件系统 149

6.3.2 建立Ramfs文件系统 155

6.4 实验:NFS文件系统实验 159

6.4.1 NFS简介 160

6.4.2 配置NFS服务端 161

6.4.3 配置NFS客户端 162

6.4.4 挂载NFS文件系统 162

6.4.6 加载NFS为根文件系统 163

6.4.5 NFS的注意事项 163

6.5 实验:Samba的介绍与应用 166

6.5.1 Samba的介绍 166

6.5.2 Samba实验 169

6.6 实验:使用BusyBox构建根文件系统 171

6.6.1 编译BusyBox 171

6.6.2 配置文件系统 173

6.6.3 制作JFFS2文件映像 175

6.7 小结 175

6.8 习题与思考题 175

第7章 嵌入式系统的调试 176

7.1 远程调试环境的搭建原理 176

7.1.1 插桩(stub) 176

7.1.2 GDB介绍 178

7.1.3 GDB远程调试功能介绍 178

7.2.1 GDB命令 179

7.2 使用GDB 179

7.2.2 断点与条件断点 184

7.3 Linux内核调试 184

7.3.1 内核调试技术 185

7.3.2 KGDB分析 186

7.3.3 内核进入调试状态的路径 189

7.4 实验 191

7.4.1 利用GDB进行本地调试 191

7.4.2 利用GDB进行远程调试 192

7.4.3 ARM-Linux内核调试 195

7.5 小结 197

7.6 习题与思考题 197

第8章 嵌入式设备驱动 198

8.1.1 设备的分类 199

8.1.2 设备文件 199

8.1 Linux下设备驱动程序简介 199

8.1.3 主设备号和次设备号 200

8.1.4 Linux设备驱动代码的分布 200

8.1.5 Linux设备驱动程序的特点 201

8.2 设备驱动程序结构 201

8.2.1 驱动程序的注册与注销 202

8.2.2 设备的打开与释放 202

8.2.3 设备的读写操作 203

8.2.4 设备的控制操作 203

8.2.5 设备的轮流查询和中断处理 203

8.3 实验:编写一个简单的驱动程序 205

8.3.1 主要数据结构和全局变量 205

8.3.2 主要接口函数 206

8.3.3 模块加载 208

8.3.4 驱动安装过程 208

8.4.1 用户空间和内核空间 210

8.4 驱动设计中涉及的一些具体问题 210

8.4.2 proc文件系统 211

8.5 实验:设计和实现一个KED&LED驱动 215

8.5.1 主要数据结构和接口函数 218

8.5.2 模块加载 219

8.5.3 测试代码 219

8.5.4 驱动安装过程 220

8.6 实验:动态加载和静态编译驱动到内核 222

8.6.1 主要步骤 222

8.6.2 驱动位置和目录结构 223

8.6.3 修改配置文件 223

8.6.4 编写Makefile 224

8.7 实验:使用中断方式的驱动程序设计 225

8.7.1 注册中断处理程序 225

8.7.2 编写中断处理程序 227

8.7.3 中断处理机制的实现 228

8.7.4 中断控制 228

8.7.5 中断实验小结 229

8.8 设备驱动小结 230

8.9 习题与思考题 230

第9章 嵌入式GUI 231

9.1 嵌入式GUI简介 231

9.1.1 Qt/Embedded 232

9.1.2 Micro Windows 232

9.1.3 OpenGUI 232

9.1.4 MiniGUI 232

9.2 X Windows架构 233

9.3 Tiny-X系统框架 234

9.4 Tiny-X应用程序开发 235

9.4.1 GTK+的基本概念 236

9.4.2 图形界面生成器Glade 239

9.5 实验:用Glade编写一个简单的GUI应用程序 241

9.6 实验:Tiny-X下的KeyPad/LED控制实验 243

9.7 实验:Qt/Embedded移植实验 248

9.7.1 Qt/Embedded安装及环境设置 248

9.7.2 移植Qt/Embedded应用程序 250

9.7.3 修改触摸屏驱动 250

9.8 小结 252

9.9 习题与思考题 253

第10章 综合创新实验 255

10.1 设计任务 255

10.2 设计分析 256

10.3 FPGA设计基础 257

10.3.1 可编程逻辑器件简介 257

10.3.2 VHDL语言介绍 259

10.3.3 QuartusⅡ使用简介 260

10.3.4 扩展板逻辑设计要点 265

10.4 模块分析 274

10.4.1 总体分析 274

10.4.2 各模块设计要点 274

10.5 驱动设计 277

10.5.1 驱动设计要点 277

10.5.2 驱动的加载 285

10.6 测试程序设计 287

10.6.1 设备文件 287

10.6.2 操作命令字 288

10.7 GUI程序设计 294

10.8 小结 299

10.9 习题与思考题 299

返回顶部