嵌入式系统与应用
书号:9787113121945 套系名称:高等学校计算机类课程应用型人才培养规划教材
作者:周鸣争 主编 出版日期:2011-03-08
定价:33.00 页码 / 开本:352 /16
策划编辑:严晓舟 责任编辑:周海燕
适用专业:无 适用层次:本科
最新印刷时间:
本书以当前主流嵌入式系统技术为背景,以嵌入式系统原理为基础,以嵌入式系统开发体系为构架,针对嵌入式系统领域的最新发展趋势与嵌入式应用型人才知识结构的需求,结合编者多年的教学和科研经验,系统全面地介绍了嵌入式系统的基本概念、软硬件的基本体系结构、软硬件设计方法、相关开发工具及应用,同时配有相应的实验指导以方便读者开发实践。通过对本书的学习,不但可以使读者掌握使用工具开发嵌入式软硬件的方法,具备较为实用的技能,而且可以帮助读者从总体的角度系统掌握嵌入式系统基本知识,选择适当的技术与方法,全面规划和设计嵌入式系统。
本书可作为高等学校计算机及相关专业的“嵌入式系统与应用”课程教材,同时也可作为从事嵌入式产品开发的工程技术人员的自学与参考用书。
从20世纪90年代中期到现在,嵌入式系统在消费电子、航空航天、汽车电子、医疗保健、网络通信、工业控制等领域得到了广泛的应用,正以各种不同的形式改变着人们的生活、生产方式,已成为计算机应用技术领域的一个热点。
为了满足嵌入式系统开发与应用人才市场的需求,“嵌入式系统与应用”已成为高等学校计算机、信息及相关专业的一门重要的技术基础课程,它直接面向应用,在应用型人才培养的知识体系结构中有着十分重要的作用。根据教育部高等学校计算机科学与技术教学指导委员会编制的《高等学校计算机科学与技术专业公共核心知识体系与课程》中嵌入式系统课程的教学要求,同时兼顾目前嵌入式系统应用开发的主流技术,结合我们近几年“嵌入式系统与应用”应用型人才培养的教学实践,以高等学校“嵌入式系统与应用”课程教学为对象,确定了本书的内容与结构。
本书的编写原则
理论与实践并重,基础与发展兼顾;在选材上力求实用、新颖;在叙述上力求简洁、易懂;在介绍嵌入式系统基本原理、方法和应用技术的同时,综合考虑嵌入式系统硬件与软件两大内容,涵盖了教指委“嵌入式系统”所规定的核心知识单元。通过突出嵌入式系统软硬件依赖性、实时性、可靠性、低功耗等特点,在使读者掌握利用工具开发实际嵌入式应用系统的同时,理解嵌入式应用系统的特色及各种开发原理与技术,为读者提供了嵌入式应用系统开发的完整体系结构和思路,使之具有嵌入式系统产品设计方案规划、硬件设计与软件开发等方面的综合能力。
本书的适用对象
本书适合作为计算机、电子、电气、通信等与控制相关的专业的“嵌入式系统与应用”课程教材,也可作为IT企业嵌入式工程师进行嵌入式开发的参考手册。
读者在学习本课程之前,必须了解计算机的基本工作原理,掌握汇编语言或C语言的程序设计方法,能够使用汇编语言或C语言进行应用程序的开发。本课程的前导课程应该包括:计算机概论、微机原理、数字电路、汇编语言程序设计和C语言程序设计。
本书的结构
本书共9章,各章的内容如下:
第1章介绍嵌入式系统的一些基本知识,包括嵌入式系统的概念、发展、特点、组成、分类、应用等,使读者初步建立起对嵌入式系统的全面认识,为今后的深入学习和研究打下基础。
第2章针对嵌入式系统开发的实际需求,在讲述嵌入式系统开发相关基本概念的基础上,系统介绍两种常用的嵌入式系统开发模式,重点描述嵌入式系统的设计步骤与方法,帮助读者进一步理解嵌入式系统的开发过程与设计原则,使之对嵌入式系统的开发有较为清楚的整体认识。
第3章介绍ARM微处理器的一些基本知识,包括ARM的版本、ARM微处理器系列和ARM微处理器的体系结构,使读者了解ARM微处理器体系结构的特点、ARM微处理器的结构和分类,并使读者初步了解基于ARM9的 S3C2410AX微处理器。
第4章详细介绍ARM指令集和Thumb指令集,使读者了解ARM指令系统的功能,理解ARM指令在嵌入式系统中的地位和作用,应用ARM指令进行简单编程。
第5章主要介绍ARM开发平台RealView MDK的使用和程序设计的一些基本概念,如ARM汇编语言的伪指令、汇编语言的语句格式和汇编语言的程序结构等,同时介绍C/C++和汇编语言的混合编程等内容。
第6章以三星公司的S3C2410A嵌入式处理器为例,详细介绍了最小系统的设计过程及典型外围接口电路的扩展方法。
第7章主要介绍S3C2410A的通信接口设计,包括UART接口、IIC接口、SPI接口、USB接口及常用的网络接口。
第8章介绍基于Linux操作系统的嵌入式应用系统的开发过程和步骤,对开发环境的构建、Linux系统的构建、设备驱动程序的开发等技术都进行了详细的讲述,使读者可以较全面地掌握基于Linux操作系统的嵌入式系统设计的方法和技术。
第9章介绍嵌入式应用系统的一般开发步骤,并且通过一个实例介绍嵌入式应用系统开发的全过程,帮助读者进一步理解嵌入式系统的开发过程与设计原则,使之对嵌入式系统的开发有更为清楚的整体认识。
本课程的教学建议
由于不同的专业对本课程的要求不同,所以在教学安排上,可以有选择性地学习相关内容,这里给出两种建议。
(1)将本课程作为专业主干课程的,建议教学学时为64学时,学时安排如下:
第1章 嵌入式系统概述 2学时
第2章 嵌入式系统的开发模式与方法 2学时
第3章 ARM微处理器体系结构 2学时
第4章 ARM指令系统 12学时
第5章 ARM应用软件开发环境 4学时
第6章 应用接口设计 18学时
第7章 通信接口设计 10学时
第8章 基于嵌入式Linux的应用开发 12学时
第9章 嵌入式应用系统的开发实例 2学时
(2)将本课程作为非专业主干课程的,建议教学学时为48学时,学时安排如下:
第1章 嵌入式系统概述 2学时
第2章 嵌入式系统的开发模式与方法 2学时
第3章 ARM微处理器体系结构 2学时
第4章 ARM指令系统 4学时
第5章 ARM应用软件开发环境 4学时
第6章 应用接口设计 18学时
第7章 通信接口设计 10学时
第8章 基于嵌入式Linux的应用开发 4学时
第9章 嵌入式应用系统的开发实例 2学时
应用软件的开发以C语言为主,教学过程中可以忽略汇编语言,第4章只简单介绍ARM指令系统与Thumb指令系统的不同,不详细介绍Thumb指令系统。教学内容可以不考虑基于嵌入式Linux的应用开发,第8章也只作简单介绍。
“嵌入式系统与应用”是一门实践性很强的课程,除课堂教学外,还应辅以一定量的实验;为此,编者同时编写了一本相应的“嵌入式系统与应用实验教程”配套使用,建议实验20~30学时。
本书的编写工作
本书的第1、2章由周鸣争编写;第3、5章由谢永宁编写;第4章由李敬兆编写;第6章由郎璐红编写;第7章由谢永宁、吕立新编写;第8章由吕立新编写;第9章由谢永宁、鲍光喜编写;全书由周鸣争、谢永宁最后统稿,赵森严也参加了最后的统稿工作。
致谢
本书在编写的过程中得到了周耕林教授热心的指导与帮助,中国铁道出版社为本书的及时出版做了大量的工作,编者在此一并表示衷心的感谢。本书写作时参考了大量文献资料,在此也向这些文献资料的作者深表谢意。
由于时间仓促和编者水平有限,书中难免有不当和欠妥之处,敬请各位专家、读者批评指正。
编 者
2010年12月
第1章 嵌入式系统概述 1
1.1 嵌入式系统的概念 1
1.1.1 嵌入式系统的发展历程 2
1.1.2 嵌入式系统的定义 4
1.1.3 嵌入式系统的主要特征 5
1.1.4 嵌入式系统与PC的区别 6
1.2 嵌入式系统的组成 6
1.2.1 嵌入式硬件组成 6
1.2.2 嵌入式软件组成 9
1.3 嵌入式系统的类型 13
1.3.1 缩减PC系统 13
1.3.2 高端嵌入式系统 13
1.3.3 单片机系统 14
1.4 嵌入式系统的应用领域与发展趋势 14
1.4.1 嵌入式系统的应用领域 14
1.4.2 嵌入式系统的发展趋势 15
本章小结 16
习题 16
第2章 嵌入式系统的开发模式与方法 17
2.1 嵌入式系统的相关知识 18
2.1.1 存储器管理单元 18
2.1.2 板级支持包 18
2.1.3 Bootloader与OSLoader 19
2.1.4 ICE与ICD 19
2.1.5 编译器与交叉编译器 20
2.1.6 JTAG 20
2.1.7 模拟器与仿真器 21
2.2 嵌入式系统的开发模式 22
2.2.1 面向硬件的开发模式 22
2.2.2 面向操作系统的开发模式 22
2.3 嵌入式系统的设计方法 23
2.3.1 嵌入式系统设计方法 23
2.3.2 嵌入式系统编程 26
2.3.3 嵌入式系统测试 27
2.3.4 嵌入式软件的复用 29
2.3.5 嵌入式软件开发环境 29
本章小结 34
习题 34
第3章 ARM微处理器体系结构 35
3.1 ARM概述 36
3.2 ARM的版本 36
3.3 ARM微处理器系列 41
3.4 ARM微处理器结构 44
3.4.1 ARM微处理器的工作状态 44
3.4.2 ARM微处理器的工作模式 44
3.4.3 ARM微处理器的寄存器组织 45
3.4.4 ARM微处理器的存储器格式 50
3.4.5 ARM微处理器的异常中断 51
3.5 基于ARM9的S3C2410AX微处理器 55
本章小结 59
习题 59
第4章 ARM指令系统 60
4.1 ARM指令概述 61
4.1.1 ARM指令的分类 61
4.1.2 ARM指令的条件域 62
4.2 ARM微处理器的寻址方式 63
4.2.1 立即数寻址 63
4.2.2 寄存器寻址 63
4.2.3 寄存器移位寻址 64
4.2.4 寄存器间接寻址 64
4.2.5 寄存器基址寻址 65
4.2.6 多寄存器寻址 65
4.2.7 相对寻址 66
4.2.8 堆栈寻址 66
4.2.9 块拷贝寻址 66
4.3 ARM指令集 66
4.3.1 ARM指令的基本格式 67
4.3.2 ARM指令集的内容 68
4.4 Thumb指令集 79
4.4.1 Thumb指令集的内容 80
4.4.2 Thumb指令集与ARM指令集的区别 88
本章小结 88
习题 89第5章 ARM应用软件开发环境 90
5.1 RealView MDK集成开发环境 91
5.1.1 安装与启动 91
5.1.2 工程项目的管理 91
5.1.3 工程项目的配置 94
5.1.4 编译 95
5.1.5 仿真调试 95
5.2 汇编语言编程 97
5.2.1 汇编语言程序中常用的符号 97
5.2.2 汇编语言程序中的表达式和运算符 98
5.2.3 ARM汇编器所支持的伪指令 100
5.2.4 汇编语言的程序结构 110
5.3 嵌入式C语言编程 113
5.4 汇编语言与C/C++的混合编程 113
5.4.1 在C/C++代码中嵌入汇编指令 114
5.4.2 在汇编程序和C/C++程序之间进行变量的互访 117
5.4.3 汇编程序、C/C++程序间的相互调用 118
5.5 RealView MDK环境下ARM程序开发举例 121
本章小结 123
习题 123
第6章 应用接口设计 124
6.1 嵌入式微处理器系统核心的硬件设计 125
6.1.1 芯片选择 125
6.1.2 时钟与电源管理 126
6.1.3 中断系统 133
6.2 存储器接口 141
6.2.1 S3C2410A的存储器组织 141
6.2.2 S3C2410A的SDRAM存储器接口 147
6.2.3 S3C2410A的Nand Flash存储器接口 149
6.2.4 S3C2410A的Nor Flash存储器接口 152
6.3 通用I/O接口 153
6.3.1 S3C2410A的通用I/O接口 154
6.3.2 通用I/O接口相关的寄存器 154
6.3.3 通用I/O接口设计 163
6.3.4 通用I/O接口驱动程序 164
6.3.5 通用I/O接口的应用实例 164
6.4 键盘接口 165
6.4.1 矩阵式键盘接口 165
6.4.2 标准的计算机通用键盘接口 168
6.5 显示器接口 168
6.5.1 LED数码管显示接口 168
6.5.2 LCD显示接口 169
6.6 触摸屏接口 180
6.6.1 触摸屏的工作原理 180
6.6.2 触摸屏的接口模式 181
6.6.3 触摸屏相关的寄存器 182
6.6.4 触摸屏的接口设计 184
6.6.5 触摸屏的驱动程序设计 185
6.6.6 触摸屏接口实例 185
6.7 A/D接口 188
6.7.1 A/D转换的基本原理 188
6.7.2 S3C2410A的A/D转换控制器 189
6.7.3 A/D接口电路 189
6.7.4 A/D转换的程序设计 189
6.8 IIS音频接口 190
6.8.1 IIS总线格式 190
6.8.2 S3C2410A内置的IIS控制器 191
6.8.3 IIS控制相关的寄存器 192
6.8.4 IIS接口电路 194
6.8.5 IIS的接口程序设计 194
本章小结 198
习题 198
第7章 通信接口设计 200
7.1 UART接口 200
7.1.1 UART通信数据格式 201
7.1.2 S3C2410A的UART接口 201
7.1.3 UART相关的寄存器 202
7.1.4 UART接口设计 206
7.1.5 UART接口驱动程序 208
7.2 IIC接口 210
7.2.1 IIC通信数据格式 210
7.2.2 S3C2410A的IIC接口 210
7.2.3 IIC相关的寄存器 211
7.2.4 IIC接口设计 212
7.2.5 IIC接口驱动程序 213
7.3 SPI接口 215
7.3.1 SPI接口 215
7.3.2 S3C2410A的SPI控制器 217
7.3.3 SPI相关的寄存器 217
7.3.4 SPI接口的初始化程序 219
7.4 USB接口 220
7.4.1 USB接口 220
7.4.2 S3C2410A的USB控制器 220
7.4.3 USB接口设计 220
7.4.4 USB接口编程 221
7.5 常用网络接口 221
7.5.1 以太网技术协议 221
7.5.2 以太网接口控制器 221
7.5.3 以太网接口电路 222
7.5.4 以太网接口编程 222
本章小结 224
习题 224
第8章 基于嵌入式Linux的应用开发 225
8.1 嵌入式Linux内核组成与启动过程 226
8.1.1 嵌入式Linux内核组成 226
8.1.2 嵌入式Linux的启动过程 227
8.2 嵌入式Linux的开发步骤 228
8.3 嵌入式Linux开发环境的构建 229
8.3.1 嵌入式Linux交叉开发环境 229
8.3.2 安装Linux操作系统 231
8.3.3 配置开发工具 236
8.3.4 交叉编译环境的建立 238
8.4 嵌入式系统的Bootloader技术 242
8.4.1 嵌入式软件运行过程 242
8.4.2 Bootloader的开发过程 243
8.4.3 常用的Bootloader 246
8.4.4 Bootloader的移植 247
8.5 嵌入式Linux系统的构建 250
8.5.1 嵌入式Linux内核的构建 250
8.5.2 嵌入式Linux根文件系统的构建 255
8.5.3 基于嵌入式Linux的应用系统开发 258
8.6 Linux系统下设备驱动程序的开发 265
8.6.1 Linux下设备驱动程序简介 265
8.6.2 设备驱动程序的结构 267
8.6.3 设备驱动程序的开发 269
8.6.4 Linux设备驱动开发实例 275
8.7 Linux用户图形接口GUI 277
8.7.1 嵌入式系统的GUI 277
8.7.2 Qt/Embedded基础 280
8.7.3 Qt/Embedded开发环境 282
8.7.4 Qt/Embedded开发实例 289
本章小结 292
习题 292
第9章 嵌入式应用系统的开发实例 294
9.1 嵌入式应用系统的开发步骤 294
9.1.1 方案论证 294
9.1.2 硬件系统设计 295
9.1.3 应用软件设计 295
9.1.4 软硬件调试 296
9.1.5 程序下载 296
9.2 基于ARM和GPRS的无线抄表终端(开发实例1) 296
9.2.1 方案论证 297
9.2.2 硬件系统设计 298
9.2.3 应用软件设计 298
9.2.4 实验与测试 300
9.2.5 程序下载 302
9.3 基于嵌入式Linux的视频监控系统(开发实例2) 302
9.3.1 方案论证 302
9.3.2 硬件系统设计 302
9.3.3 Linux系统制作 303
9.3.4 应用软件设计 306
9.3.5 系统测试 308
本章小结 308
附录A S3C2410A方框图 309
附录B S3C2410A引脚图 310
附录C S3C2410A引脚功能 311
附录D S3C2410A的IO引脚功能 314
附录E S3C2410A专用寄存器 319
附录F S3C2410A启动代码的配置 330
参考文献 335无
无