本书全面系统地描述了ARM9微处理器的嵌入式系统体系结构,以Samsung公司的S3C2440A控制器为例,着重介绍了ARM9微处理器的结构、开发工具及Linux的程序设计等内容。
全书共分4部分: 第1部分(第1章)为理论部分,着重介绍嵌入式系统的概念,包括嵌入式的特点、分类和应用。第2部分(第2~6章)为基础部分,着重介绍ARM9处理器的体系结构、指令系统、寻址方式、指令集; 伪指令、汇编程序设计基础及与C/C++的混合编程; S3C2440A 控制器的结构原理及外围电路的设计方法等。第3部分(第7章)为开发工具部分,着重介绍ADS1.2集成开发环境及嵌入式Linux的软件开发环境的使用。第4部分(第8~10章)为操作系统部分,着重介绍Linux的程序设计。
全书内容由浅入深,结构合理,采用理论与实践相结合的方法。整篇讲解立足点在应用,具有基础理论够用、有针对性、实用性及综合性强等特点。
本书不仅适用于高等院校计算机、电子、自动化及机电一体化等相关专业的本科生教材,也适用于从事嵌入式系统研究与开发的技术人员及普通读者参考。
目录
- 第1章 嵌入式系统概述
- 1.1 嵌入式系统定义
- 1.1.1 嵌入式系统的概念
- 1.1.2 嵌入式系统的特点
- 1.2 嵌入式系统的发展概述
- 1.2.1 嵌入式系统的历史与发展
- 1.2.2 嵌入式系统的功能
- 1.3 嵌入式系统的硬件和软件特征
- 1.3.1 嵌入式系统硬件平台
- 1.3.2 硬件抽象层
- 1.3.3 嵌入式操作系统
- 1.4 嵌入式系统的分类
- 1.5 嵌入式系统的应用
- 1.6 本章小结
- 1.7 习题1
- 第2章 arm微处理器概述与编程模型
- 2.1 arm微处理器概述
- 2.1.1 arm微处理器的特点
- 2.1.2 arm微处理器系列
- 2.2 arm微处理器结构
- 2.2.1RISC体系结构
- 2.2.2ARM微处理器的寄存器结构
- 2.2.3ARM微处理器的指令结构
- 2.2.4ARM微处理器的应用选型
- 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.4DMA
- 5.4.1S3C2440A芯片的DMA方式
- 5.4.2S3C2440A芯片的DMA寄存器
- 5.4.3S3C2440A芯片的DMA实例
- 5.5定时部件
- 5.5.1看门狗定时器原理及实例
- 5.5.2RTC部件
- 5.5.3Timer部件
- 5.5.4定时部件应用实例
- 5.6UART
- 5.6.1UART的操作
- 5.6.2UART接口寄存器
- 5.6.3UART实例
- 5.7ADC及触摸屏接口
- 5.7.1功能描述
- 5.7.2ADC及触摸屏接口特殊寄存器 [2]
- 5.7.3A/D转换实例
- 5.8本章小结
- 5.9习题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.5S3C2440A的摄像头
- 6.5.1S3C2440A的摄像头接口
- 6.5.2摄像头接口特殊寄存器
- 6.5.3摄像头接口应用实例
- 6.6本章小结
- 6.7习题6
- 第7章软件开发环境
- 7.1ADS1.2集成开发环境
- 7.1.1使用ADS创建工程
- 7.1.2用AXD进行代码调试
- 7.2嵌入式Linux的软件开发环境
- 7.2.1安装交叉编译环境
- 7.2.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
- 参考文献