《嵌入式系统技术与设计》是对ARM处理器架构的全面介绍、编程模型、指挥系统和最新的RealViewMDK开发环境,同时配合公司的EduKit-ⅲ实验教学系统基于ARM9处理器S3C2410详细介绍了系统的设计和相关接口的操作,并提供了大量的实验程序。最后,03010详细说明了嵌入式Linux系统各组件在教学系统中的移植过程。
《嵌入式系统技术与设计》可以作为高校的电脑使用、电子信息、通信工程、自动化等专业嵌入式系统教程也可以作为相关嵌入式系统开发者的参考书。
目录
- 第1章 嵌入式系统概述
- 1.1 嵌入式系统简介
- 1.2 嵌入式系统发展趋势
- 1.3 嵌入式系统的硬件和软件特征
- 1.4 ARM系列处理器简介
- 1.4.1 ARM7处理器系列
- 1.4.2 ARM9处理器系列
- 1.4.3 ARM9E处理器系列
- 1.4.4 ARM10处理器系列
- 1.4.5 ARM10E处理器系列
- 1.4.6 ARM11处理器系列
- 1.4.7 SecureCore处理器系列
- 1.4.8 StrongARM和Xscale处理器系列
- 1.4.9 Cortex和MPCore处理器系列
- 1.4.10 各种处理器系列之间的比较
- 1.5 本章小结
- 1.6 思考题
- 第2章 ARM体系结构与指令集
- 2.1 ARM体系结构的特点
- 2.2 ARM处理器工作模式
- 2.3 寄存器组织
- 2.3.1 通用寄存器
- 2.3.2 状态寄存器
- 2.3.3 程序计数器
- 2.4 流水线
- 2.4.1 流水线的概念与原理
- 2.4.2 流水线的分类
- 2.4.3 影响流水线性能的因素
- 2.5 ARM存储系统
- 2.5.1 协处理器(CP15)
- 2.5.2 存储管理单元(MMU)
- 2.5.3 高速缓冲存储器(Cache)
- 2.6 异常
- 2.6.1 异常的种类
- 2.6.2 异常的优先级
- 2.6.3 构建异常向量表
- 2.6.4 异常响应流程
- 2.6.5 从异常处理程序中返回
- 2.7 ARM处理器的寻址方式
- 2.7.1 数据处理指令寻址方式
- 2.7.2 内存访问指令寻址方式
- 2.8 ARM处理器的指令集
- 2.8.1 数据操作指令
- 2.8.2 乘法指令
- 2.8.3 Load/Store指令
- 2.8.4 单数据交换指令
- 2.8.5 跳转指令
- 2.8.6 状态操作指令
- 2.8.7 协处理器指令
- 2.8.8 异常产生指令
- 2.9 本章小结
- 2.10 思考题
- 第3章 ARM汇编语言程序设计
- 3.1 ARM/Thumb混合编程
- 3.1.1 Thumb指令的特点及实现
- 3.1.2 ARM/Thumb交互工作基础
- 3.1.3 ARM/Thumb交互子程序
- 3.2 ARM汇编器支持的伪操作
- 3.2.1 伪操作概述
- 3.2.2 符号定义伪操作
- 3.2.3 数据定义(DataDefinition)伪操作
- 3.2.4 汇编控制伪操作
- 3.2.5 杂项伪操作
- 3.3 ARM汇编器支持的伪指令
- 3.3.1 ADR伪指令
- 3.3.2 ADRL伪指令
- 3.3.3 LDR伪指令
- 3.4 汇编语言与C/C++的混合编程
- 3.4.1 内联汇编
- 3.4.2 嵌入型汇编
- 3.4.3 汇编代码访问C全局变量
- 3.4.4 C++中使用C头文件
- 3.4.5 混合编程调用举例
- 3.5 本章小结
- 3.6 思考题
- 第4章 嵌入式软件基础实验
- 4.1 RealviewMDK简介
- 4.2 ULINK2仿真器简介
- 4.3 使用RealviewMDK创建一个工程
- 4.3.1 选择工具集
- 4.3.2 创建工程并选择处理器
- 4.3.3 建立一个新的源文件
- 4.3.4 工程中文件的加入
- 4.3.5 工程基本配置
- 4.3.6 工程的编译链接
- 4.4 嵌入式软件开发基础实验
- 4.4.1 ARM汇编指令实验一
- 4.4.2 ARM汇编指令实验二
- 4.4.3 Thumb汇编指令实验
- 4.4.4 ARM处理器工作模式实验
- 4.4.5 C语言实例一
- 4.4.6 C语言实验程序二
- 4.4.7 汇编语言与C语言相互调用实例
- 4.5 本章小结
- 第5章 ARM应用系统设计
- 5.1 SoC系统概述
- 5.2 S3C2410概述
- 5.3 S3C2410系统功能电路设计
- 5.3.1 概述
- 5.3.2 电源电路
- 5.3.3 时钟电路
- 5.3.4 复位电路
- 5.3.5 JTAG接口电路
- 5.3.6 NorFlash电路
- 5.3.7 NandFlash电路
- 5.3.8 SDRAM电路
- 5.3.9 串行接口电路
- 5.3.10 以太网接口电路
- 5.3.11 蜂鸣器电路及其PWM电路
- 5.3.12 按键电路
- 5.3.13 实时时钟
- 5.3.14 A/D转换器电路
- 5.3.15 IIS音频接口电路
- 5.3.16 SD卡接口电路
- 5.3.17 LCD电路
- 5.3.18 USB接口电路
- 5.3.19 印刷电路板设计的注意事项
- 5.4 本章小结
- 5.5 思考题
- 第6章 S3C2410系统接口操作原理及实验
- 6.1 I/O接口实验
- 6.1.1 实验目的
- 6.1.2 实验设备
- 6.1.3 实验内容
- 6.1.4 实验原理
- 6.1.5 实验操作步骤
- 6.1.6 实验参考程序
- 6.2 串口通信实验
- 6.2.1 实验目的
- 6.2.2 实验设备
- 6.2.3 实验内容
- 6.2.4 实验原理
- 6.2.5 实验操作步骤
- 6.2.6 实验参考程序
- 6.3 中断实验
- 6.3.1 实验目的
- 6.3.2 实验设备
- 6.3.3 实验内容
- 6.3.4 实验原理
- 6.3.5 实验操作步骤
- 6.3.6 实验参考程序
- 6.4 键盘控制实验
- 6.4.1 实验目的
- 6.4.2 实验设备
- 6.4.3 实验内容
- 6.4.4 实验原理
- 6.4.5 实验设计
- 6.4.6 实验操作步骤
- 6.4.7 实验参考程序
- 6.5 实时时钟实验
- 6.5.1 实验目的
- 6.5.2 实验设备
- 6.5.3 实验内容
- 6.5.4 实验原理
- 6.5.5 实验设计
- 6.5.6 实验操作步骤
- 6.5.7 实验参考程序
- 6.6 看门狗实验
- 6.6.1 实验目的
- 6.6.2 实验设备
- 6.6.3 实验内容
- 6.6.4 实验原理
- 6.6.5 实验设计
- 6.6.6 实验操作步骤
- 6.6.7 实验参考程序
- 6.7 IIC串行通信实验
- 6.7.1 实验目的
- 6.7.2 实验设备
- 6.7.3 实验内容
- 6.7.4 实验原理
- 6.7.5 实验设计
- 6.7.6 实验操作步骤
- 6.7.7 实验参考程序
- 6.8 A/D转换实验
- 6.8.1 实验目的
- 6.8.2 实验设备
- 6.8.3 实验内容
- 6.8.4 实验原理
- 6.8.5 实验设计
- 6.8.6 实验操作步骤
- 6.8.7 实验参考程序
- 6.9 NandFlash读写实验
- 6.9.1 实验目的
- 6.9.2 实验设备
- 6.9.3 实验内容
- 6.9.4 实验原理
- 6.9.5 实验设计
- 6.9.6 实验操作步骤
- 6.9.7 实验参考程序
- 6.10 本章小结
- 第7章 嵌入式操作系统及开发简述
- 7.1 嵌入式Linux简介
- 7.2 构建嵌入式Linux开发环境
- 7.2.1 交叉开发环境介绍
- 7.2.2 安装交叉开发工具
- 7.2.3 主机交叉开发环境配置
- 7.3 Bootloader
- 7.3.1 Bootloader的种类
- 7.3.2 U-Boot工程简介
- 7.3.3 U-Boot编译
- 7.3.4 U-Boot的移植思路
- 7.3.5 U-Boot的烧写
- 7.3.6 U-Boot的常用命令
- 7.4 Linux内核与移植
- 7.4.1 Linux内核结构
- 7.4.2 Linux内核配置系统
- 7.4.3 Linux内核编译选项
- 7.5 移植Linux2.6内核到S3C2410平台简述
- 7.5.1 移植的概念
- 7.5.2 设备驱动移植
- 7.5.3 NandFlash移植
- 7.6 嵌入式文件系统构建
- 7.6.1 文件系统简介
- 7.6.2 嵌入式文件系统的特点和种类
- 7.6.3 文件系统的组成
- 7.6.4 利用BusyBox构建文件系统
- 7.6.5 利用NFS调试新建的文件系统
- 7.7 本章小结
- 7.8 思考题
- 第8章 嵌入式Linux实验
- 8.1 搭建嵌入式Linux开发环境
- 8.1.1 实验目的
- 8.1.2 实验环境
- 8.1.3 实验步骤
- 8.2 移植U-Boot实验
- 8.2.1 实验目的
- 8.2.2 实验环境
- 8.2.3 实验步骤
- 8.3 烧写U-Boot实验
- 8.3.1 实验目的
- 8.3.2 实验环境
- 8.3.3 实验步骤
- 8.4 Linux内核编译与下载实验
- 8.4.1 实验目的
- 8.4.2 实验环境
- 8.4.3 实验步骤
- 8.5 Linux内核移植实验
- 8.5.1 CS8900A网卡驱动移植
- 8.5.2 NandFlash驱动移植
- 8.5.3 Yaffs2文件系统移植
- 8.6 文件系统制作实验
- 8.6.1 实验目的
- 8.6.2 实验环境
- 8.6.3 实验步骤
- 8.7 编写Linux内核模块实验
- 8.7.1 实验目的
- 8.7.2 实验环境
- 8.7.3 实验步骤
- 8.8 编写带参数的Linux内核模块实验
- 8.8.1 实验目的
- 8.8.2 实验环境
- 8.8.3 实验步骤
- 8.9 编写Linux字符驱动程序实验
- 8.9.1 实验目的
- 8.9.2 实验环境
- 8.9.3 实验步骤
- 8.10 本章小结
- 参考文献