嵌入式系统原理及应用教程(第2版) / 21世纪高等学校嵌入式系统专业规划教材
¥49.80定价
作者: 孟祥莲、孙平等
出版时间:2017年3月
出版社:清华大学出版社
- 清华大学出版社
- 9787302459392
- 2-1
- 54690
- 16开
- 2017年3月
- 工学
- 计算机科学与技术
- TP311.1
- 计算机
- 本专科、高职高专
内容简介
本书全面、系统地描述了ARM9微处理器核的嵌入式系统体系结构,以Samsung公司的S3C2440A控制器为例,着重介绍ARM9微处理器的结构、开发工具、Linux的程序设计及嵌入式CDIO工程实训等内容。
本书共分5部分: 第1部分(第1章)为理论部分,着重介绍嵌入式系统的概念,包括嵌入式的特点、分类和应用; 第2部分(第2~6章)为基础部分,着重介绍ARM9体系结构、指令系统、寻址方式、指令集,伪指令、汇编语言程序设计基础及与C/C 的混合编程,S3C2440A 控制器的结构原理及外围电路的设计方法等; 第3部分(第7章)为开发工具部分,着重介绍ADS 1.2集成开发环境及嵌入式Linux的软件开发环境的使用; 第4部分(第8~11章)为操作系统部分,着重介绍Linux的程序设计; 第5部分为第2版新增部分(第12章),增加了嵌入式CDIO工程实训环节。
本书采用理论与实践相结合的方法,立足于应用,具有有针对性、实用性及综合性强等特点。
本书不仅适用于高等院校计算机、物联网、电子、自动化等相关专业的本科教学,也适合于从事嵌入式系统研究与开发的技术人员及普通读者参考。
本书共分5部分: 第1部分(第1章)为理论部分,着重介绍嵌入式系统的概念,包括嵌入式的特点、分类和应用; 第2部分(第2~6章)为基础部分,着重介绍ARM9体系结构、指令系统、寻址方式、指令集,伪指令、汇编语言程序设计基础及与C/C 的混合编程,S3C2440A 控制器的结构原理及外围电路的设计方法等; 第3部分(第7章)为开发工具部分,着重介绍ADS 1.2集成开发环境及嵌入式Linux的软件开发环境的使用; 第4部分(第8~11章)为操作系统部分,着重介绍Linux的程序设计; 第5部分为第2版新增部分(第12章),增加了嵌入式CDIO工程实训环节。
本书采用理论与实践相结合的方法,立足于应用,具有有针对性、实用性及综合性强等特点。
本书不仅适用于高等院校计算机、物联网、电子、自动化等相关专业的本科教学,也适合于从事嵌入式系统研究与开发的技术人员及普通读者参考。
目录
目录
第1章嵌入式系统概述
1.1嵌入式系统定义
1.1.1嵌入式系统的概念
1.1.2嵌入式系统的特点
1.2嵌入式系统的组成
1.2.1嵌入式系统硬件
1.2.2嵌入式系统软件
1.2.3嵌入式系统的开发系统和开发工具
1.3嵌入式系统的应用
1.4本章小结
1.5习题1
第2章ARM微处理器概述与编程模型
2.1ARM微处理器概述
2.1.1ARM微处理器的特点
2.1.2ARM微处理器系列
2.2ARM微处理器结构
2.2.1RISC体系结构
2.2.2ARM微处理器的寄存器结构
2.2.3ARM微处理器的指令结构
2.3ARM微处理器的工作状态
2.4ARM体系结构的存储器格式
2.4.1指令长度及数据类型
2.4.2存储管理单元
2.5处理器模式
2.6寄存器组织
2.6.1ARM状态下的寄存器组织
2.6.2Thumb状态下的寄存器组织
2.6.3程序状态寄存器
2.7异常
2.7.1ARM体系结构所支持的异常类型
2.7.2异常优先级
2.7.3异常的响应及返回
2.7.4应用程序中的异常处理
2.8本章小结
2.9习题2
第3章ARM9指令系统
3.1ARM处理器的寻址方式
3.1.1寄存器寻址
3.1.2立即寻址
3.1.3寄存器间接寻址
3.1.4变址寻址
3.1.5寄存器移位寻址
3.1.6多寄存器寻址
3.1.7堆栈寻址
3.1.8相对寻址
3.2ARM指令集
3.2.1指令格式
3.2.2条件码
3.2.3ARM 存储器访问指令
3.2.4ARM 数据处理类指令
3.2.5ARM 分支指令
3.2.6ARM 协处理器指令
3.2.7ARM 软件中断指令
3.3Thumb指令集
3.4本章小结
3.5习题3
第4章嵌入式程序设计基础
4.1伪指令
4.1.1通用伪指令
4.1.2与ARM指令相关的伪指令
4.1.3与Thumb指令相关的伪指令
4.2汇编语言的语句格式
4.2.1书写格式
4.2.2汇编语言中表达式和运算符
4.3汇编程序应用
4.3.1汇编程序基本结构
4.3.2子程序调用
4.4汇编语言与C/C 的混合编程
4.4.1在C/C 程序中内嵌汇编指令的语法格式
4.4.2C/C 与汇编语言的混合编程应用
4.5本章小结
4.6习题4
第5章嵌入式内部可编程模块
5.1存储控制模块
5.1.1存储器控制器
5.1.2NAND Flash控制器
5.1.3存储器实例
5.2GPIO
5.2.1端口功能
5.2.2端口配置寄存器
5.2.3端口其他寄存器
5.2.4I/O应用实例
5.3中断系统
5.3.1中断优先级
5.3.2中断控制寄存器
5.3.3中断编程实例
5.4定时部件
5.4.1看门狗定时器原理及实例
5.4.2RTC部件
5.4.3Timer部件
5.4.4定时部件应用实例
5.5UART
5.5.1UART的操作
5.5.2UART接口寄存器
5.5.3UART实例
5.6ADC及触摸屏接口
5.6.1功能描述
5.6.2ADC及触摸屏接口特殊寄存器
5.6.3A/D转换实例
5.7本章小结
5.8习题5
第6章嵌入式接口技术应用
6.1LCD显示器接口
6.1.1LCD的控制器
6.1.2S3C2440A芯片的LCD专用寄存器
6.1.3S3C2440A芯片LCD寄存器的设置
6.2I2C总线
6.2.1S3C2440A的I2C接口
6.2.2I2C总线接口特殊寄存器
6.2.3I2C编程举例
6.3I2S总线
6.3.1发送接收模式
6.3.2音频串行接口格式
6.3.3I2S总线接口特殊寄存器
6.3.4I2S编程实例
6.4AC97控制器
6.4.1AC97控制器操作
6.4.2AC97控制器特殊寄存器
6.4.3AC97应用实例
6.5本章小结
6.6习题6
第7章软件开发环境
7.1ADS1.2集成开发环境
7.1.1使用ADS创建工程
7.1.2用AXD进行代码调试
7.2嵌入式Linux的交叉编译环境安装
7.3本章小结
7.4习题7
第8章嵌入式系统Boot Loader技术
8.1Boot Loader的基本概念
8.1.1Boot Loader的相关设备和机制
8.1.2Boot Loader的启动过程
8.1.3Boot Loader的操作模式
8.1.4Boot Loader的总体设计
8.2Boot Loader(vivi)的代码分析
8.3本章小结
8.4习题8
第9章嵌入式Linux操作系统移植
9.1嵌入式Linux基本概念
9.2嵌入式Linux内核移植
9.2.1内核修改
9.2.2内核配置
9.2.3内核编译
9.3建立Linux根文件系统
9.4下载目标文件
9.5本章小结
9.6习题 9
第10章嵌入式Linux设备驱动程序开发
10.1嵌入式Linux驱动程序开发基础
10.1.1嵌入式Linux设备驱动程序分类
10.1.2最简单的内核模块
10.2嵌入式Linux设备驱动重要技术
10.2.1内存与I/O端口
10.2.2同步机制
10.2.3阻塞与非阻塞
10.2.4时间问题
10.2.5中断处理
10.3字符设备驱动程序
10.3.1字符设备驱动结构
10.3.2字符设备驱动实例——LED驱动
10.4网络设备驱动程序
10.4.1Linux 网络设备简介
10.4.2网络驱动核心数据结构
10.4.3网络驱动程序分析
10.5设备驱动实例
10.5.1ADC设备驱动实例
10.5.2PWM设备驱动实例
10.5.3触摸屏设备驱动实例
10.6本章小结
10.7习题10
第11章嵌入式Linux应用程序设计
11.1嵌入式Linux C语言应用程序开发基础
11.1.1编写源程序
11.1.2交叉编译程序
11.1.3调试程序
11.2文件I/O编程
11.2.1文件I/O操作例程
11.2.2文件I/O操作API
11.3网络编程
11.3.1网络通信基础及例程
11.3.2网络通信API
11.4应用实例
11.4.1ADC应用实例
11.4.2PWM蜂鸣器控制应用实例
11.4.3触摸屏应用实例
11.5本章小结
11.6习题11
第12章嵌入式CDIO实训项目
实训1ARM汇编基础训练1
实训2ARM汇编基础训练2
实训3GPIO输入输出实训
实训4GPIO定时器中断应用实训
实训5直流电机应用实训
实训6温度采集应用实训
实训7红外通信应用实训
实训8CAN总线应用实训
参考文献
第1章嵌入式系统概述
1.1嵌入式系统定义
1.1.1嵌入式系统的概念
1.1.2嵌入式系统的特点
1.2嵌入式系统的组成
1.2.1嵌入式系统硬件
1.2.2嵌入式系统软件
1.2.3嵌入式系统的开发系统和开发工具
1.3嵌入式系统的应用
1.4本章小结
1.5习题1
第2章ARM微处理器概述与编程模型
2.1ARM微处理器概述
2.1.1ARM微处理器的特点
2.1.2ARM微处理器系列
2.2ARM微处理器结构
2.2.1RISC体系结构
2.2.2ARM微处理器的寄存器结构
2.2.3ARM微处理器的指令结构
2.3ARM微处理器的工作状态
2.4ARM体系结构的存储器格式
2.4.1指令长度及数据类型
2.4.2存储管理单元
2.5处理器模式
2.6寄存器组织
2.6.1ARM状态下的寄存器组织
2.6.2Thumb状态下的寄存器组织
2.6.3程序状态寄存器
2.7异常
2.7.1ARM体系结构所支持的异常类型
2.7.2异常优先级
2.7.3异常的响应及返回
2.7.4应用程序中的异常处理
2.8本章小结
2.9习题2
第3章ARM9指令系统
3.1ARM处理器的寻址方式
3.1.1寄存器寻址
3.1.2立即寻址
3.1.3寄存器间接寻址
3.1.4变址寻址
3.1.5寄存器移位寻址
3.1.6多寄存器寻址
3.1.7堆栈寻址
3.1.8相对寻址
3.2ARM指令集
3.2.1指令格式
3.2.2条件码
3.2.3ARM 存储器访问指令
3.2.4ARM 数据处理类指令
3.2.5ARM 分支指令
3.2.6ARM 协处理器指令
3.2.7ARM 软件中断指令
3.3Thumb指令集
3.4本章小结
3.5习题3
第4章嵌入式程序设计基础
4.1伪指令
4.1.1通用伪指令
4.1.2与ARM指令相关的伪指令
4.1.3与Thumb指令相关的伪指令
4.2汇编语言的语句格式
4.2.1书写格式
4.2.2汇编语言中表达式和运算符
4.3汇编程序应用
4.3.1汇编程序基本结构
4.3.2子程序调用
4.4汇编语言与C/C 的混合编程
4.4.1在C/C 程序中内嵌汇编指令的语法格式
4.4.2C/C 与汇编语言的混合编程应用
4.5本章小结
4.6习题4
第5章嵌入式内部可编程模块
5.1存储控制模块
5.1.1存储器控制器
5.1.2NAND Flash控制器
5.1.3存储器实例
5.2GPIO
5.2.1端口功能
5.2.2端口配置寄存器
5.2.3端口其他寄存器
5.2.4I/O应用实例
5.3中断系统
5.3.1中断优先级
5.3.2中断控制寄存器
5.3.3中断编程实例
5.4定时部件
5.4.1看门狗定时器原理及实例
5.4.2RTC部件
5.4.3Timer部件
5.4.4定时部件应用实例
5.5UART
5.5.1UART的操作
5.5.2UART接口寄存器
5.5.3UART实例
5.6ADC及触摸屏接口
5.6.1功能描述
5.6.2ADC及触摸屏接口特殊寄存器
5.6.3A/D转换实例
5.7本章小结
5.8习题5
第6章嵌入式接口技术应用
6.1LCD显示器接口
6.1.1LCD的控制器
6.1.2S3C2440A芯片的LCD专用寄存器
6.1.3S3C2440A芯片LCD寄存器的设置
6.2I2C总线
6.2.1S3C2440A的I2C接口
6.2.2I2C总线接口特殊寄存器
6.2.3I2C编程举例
6.3I2S总线
6.3.1发送接收模式
6.3.2音频串行接口格式
6.3.3I2S总线接口特殊寄存器
6.3.4I2S编程实例
6.4AC97控制器
6.4.1AC97控制器操作
6.4.2AC97控制器特殊寄存器
6.4.3AC97应用实例
6.5本章小结
6.6习题6
第7章软件开发环境
7.1ADS1.2集成开发环境
7.1.1使用ADS创建工程
7.1.2用AXD进行代码调试
7.2嵌入式Linux的交叉编译环境安装
7.3本章小结
7.4习题7
第8章嵌入式系统Boot Loader技术
8.1Boot Loader的基本概念
8.1.1Boot Loader的相关设备和机制
8.1.2Boot Loader的启动过程
8.1.3Boot Loader的操作模式
8.1.4Boot Loader的总体设计
8.2Boot Loader(vivi)的代码分析
8.3本章小结
8.4习题8
第9章嵌入式Linux操作系统移植
9.1嵌入式Linux基本概念
9.2嵌入式Linux内核移植
9.2.1内核修改
9.2.2内核配置
9.2.3内核编译
9.3建立Linux根文件系统
9.4下载目标文件
9.5本章小结
9.6习题 9
第10章嵌入式Linux设备驱动程序开发
10.1嵌入式Linux驱动程序开发基础
10.1.1嵌入式Linux设备驱动程序分类
10.1.2最简单的内核模块
10.2嵌入式Linux设备驱动重要技术
10.2.1内存与I/O端口
10.2.2同步机制
10.2.3阻塞与非阻塞
10.2.4时间问题
10.2.5中断处理
10.3字符设备驱动程序
10.3.1字符设备驱动结构
10.3.2字符设备驱动实例——LED驱动
10.4网络设备驱动程序
10.4.1Linux 网络设备简介
10.4.2网络驱动核心数据结构
10.4.3网络驱动程序分析
10.5设备驱动实例
10.5.1ADC设备驱动实例
10.5.2PWM设备驱动实例
10.5.3触摸屏设备驱动实例
10.6本章小结
10.7习题10
第11章嵌入式Linux应用程序设计
11.1嵌入式Linux C语言应用程序开发基础
11.1.1编写源程序
11.1.2交叉编译程序
11.1.3调试程序
11.2文件I/O编程
11.2.1文件I/O操作例程
11.2.2文件I/O操作API
11.3网络编程
11.3.1网络通信基础及例程
11.3.2网络通信API
11.4应用实例
11.4.1ADC应用实例
11.4.2PWM蜂鸣器控制应用实例
11.4.3触摸屏应用实例
11.5本章小结
11.6习题11
第12章嵌入式CDIO实训项目
实训1ARM汇编基础训练1
实训2ARM汇编基础训练2
实训3GPIO输入输出实训
实训4GPIO定时器中断应用实训
实训5直流电机应用实训
实训6温度采集应用实训
实训7红外通信应用实训
实训8CAN总线应用实训
参考文献