《基于ARM的嵌入式系统开发与应用》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:吴明晖主编;徐睿等编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2004
  • ISBN:7115107521
  • 页数:356 页
图书介绍:本书全面、深入地介绍了基于ARM SoC的嵌入式系统开发技术,包括ARM系统结构与汇编程序设计、基于ARM的嵌入式系统启动代码bootloader设计、实时嵌入式操作系统及其移植方法、嵌入式系统中TCP/IP协议栈的开发、基于ARM SoC的音频应用开发、图形用户界面设计、嵌入式文件系统的移植方法等,并且给出了相应的设计实例。

1.1.2 ARM处理器系列介绍 1

2.7.2什么是跳转表 8 1

9.4.4编译运行 33 1

目录 1

1.1.1 ARM产品背景 1

第1章ARM体系结构 1

1.1 ARM处理器概述 1

1.1.3 ARM处理器体系结构扩展 2

1.2.1 ARM体系结构版本 3

1.2 ARM体系结构概述 3

1.2.2数据类型 4

1.2.3处理器模式 4

1.2.4寄存器 5

1.2.5通用寄存器 5

1.2.6程序状态寄存器 7

1.2.7 异常 10

1.2.8 ARM过程调用标准(APCS)简介 14

1.3.1条件执行 16

1.3 ARM指令集 16

1.3.2 ARM指令集列表 18

1.3.4 ARM指令应用举例 42

1.3.3 32位代码基本规则 42

1.4Thumb指令集 44

1.5 IEEE浮点指令集简介 54

1.6 ARM指令时序 59

1.7 32位ARM处理器调试技术 60

1.7.1边界扫描技术(JTAG) 60

1.7.3 Nexus标准 61

1.7.2 ARM芯片的实时调试方案(E-TRACE) 61

2.1汇编语言程序结构 63

第2章汇编语言程序设计 63

2.1.1基于GCC编译器的汇编语言程序框架 63

2.1.2基于CodeWarrior的汇编程序框架 65

2.2.1符号命名规则 67

2.2.2数值常量的使用与EQU指令 67

2.3变量 67

2.2符号数据定义与数据结构 67

2.3.1数值变量和数值表达式 68

2.3.4变量内存空间分配 69

2.3.3字符串变量和字符串表达式 69

2.3.2逻辑变量和逻辑表达式 69

2.4数据区分配和管理 70

2.4.1使用SPACE分配内存区域 70

2.4.2使用DCB分配一个或多个字节的内存区域 70

2.3.5变量初始化 70

2.4.3使用ALIGN对齐内存数据 71

2.4.4分配一个或多个字的内存区域 72

2.5数据结构的描述 72

2.5.1使用MAP和FIELD描述数据结构 72

2.5.3综合实例 74

2.5.2相对地址 74

2.6分支与转移汇编程序设计 76

2.6.1简单分支结构 76

2.6.2复杂的分支结构 77

2.7.1程序实例 79

2.7使用跳转表解决分支转移 79

2.8使用跳转实现循环 82

2.8.1通过条件跳转实现do…while循环 82

2.7.3如何使用跳转表 82

2.8.2通过条件跳转实现while循环 83

2.8.3多重循环程序设计 84

2.9模块化程序设计 85

2.9.1 简单函数调用例子 86

2.9.3参数传递 87

2.9.2寄存器保护 87

2.9.4函数跳转表 89

2.9.5使用宏定义实现函数功能 90

2.9.6和函数相关的伪指令 91

2.10高级语言和汇编语言的混合编程 92

2.10.1嵌入式汇编语句 92

2.10.2高级语言和汇编语言函数间的相互调用 94

2.1 1其他常见的伪指令 95

第3章ARM系统启动代码分析和开发 97

3.1 ARM的异常与RESET 97

3.2 了解与启动相关的硬件信息与开发手段 98

3.3 C/C++语言开发和运行环境 99

3.3.1工具链准备 99

3.3.2 GNU环境简介 101

3.3.3 C语言运行环境 102

3.3.4一个简单boot代码例子 105

3.4 BOOT代码分析 109

3.4.1 U-BOOT简介 109

3.4.2代码分析和移植相关 112

3.5固件开发调试方法 120

第4章实时操作系统在ARM上的移植 122

4.1实时操作系统简介 122

4.2.1μC/OS-Ⅱ介绍 123

4.2.2 μC/OS-Ⅱ应用程序开发 123

4.2 μC/OS-Ⅱ操作系统 123

4.2.3μC/OS-Ⅱ移植 126

4.3 eCos简介及移植介绍分析 140

4.3.1 eCos简介 140

4.3.2 eCos的移植介绍 141

第5章基于ARM的网络协议栈实现 143

5.1协议栈实现框架 143

5.1.1系统硬件驱动程序 144

5.1.2 znet协议初始化 146

5.1.3 znet协议主任务 147

5.2协议实现模块代码分析 150

5.2.1 全局数据结构和μC/OS-Ⅱ中的接口 150

5.2.2全局缓冲管理模块 154

5.2.3协议主任务和驱动交互的模块 158

5.2.4 ARP实现模块及主任务的IP数据分发 161

5.2.5ICMP实现模块 170

5.2.6 API实现模块 172

5.2.7 UDP实现模块 181

5.2.8 TCP实现模块 187

5.3协议栈实现回顾 198

第6章外部总线与音频系统设计 199

6.1 IIC(I2C)总线基本原理 199

6.1.1起始和停止条件 199

6.1.3读写操作 200

6.1.2数据传输 200

6.2.1 I2S总线简介 201

6.2 I2S音频设备总线的原理和应用 201

6.2.2 I2S总线协议 202

6.2.3基于I2S接口的音频系统硬件设计 203

6.2.4基于Cirrus Logic公司多媒体ARM芯片的音频系统设计 204

6.3音频设备驱动 206

6.3.1 音频设备基础知识 206

6.3.2 Linux驱动程序框架 206

6.3.3音频设备文件 208

6.3.4程序和音频设备间的通信过程 210

6.3.5设备的初始化和卸载 211

6.3.6设备打开例程open() 213

6.3.7内存映射和mmap例程 214

6.3.8缓存区的设计 218

6.3.9 ioctl系统调用 221

6.3.10音频数据的播放和录制例程 224

6.4音频应用程序的编写 226

6.4.1音频应用程序基本框架 226

6.4.2音频参数设置 228

6.4.3混频器(Mixer)基础 232

6.4.4综合应用实例 235

6.4.5音频应用程序编写注意事项 242

7.1 闪存的物理特性 244

第7章闪存芯片与嵌入式文件系统 244

7.2嵌入式文件系统概述 245

7.3 NAND设备驱动程序 246

7.3.1 NAND芯片 246

7.3.2 NAND控制器 249

7.3.3 NAND设备MTD程序制作 251

7.4 NOR设备驱动 255

7.4.1 NOR芯片 255

7.4.2通用闪存接口(CFI) 256

7.5针对闪存芯片的文件系统 259

7.5.1用于中间层TrueFFS 260

7.5.2让TrueFFS和引导扇区共享闪存 262

7.5.3 TrueFFS的配置与使用 262

7.5.4在使用TrueFFS的闪存上面安装Linux 264

7.6JFFS/JFFS2文件系统 266

7.6.1 日志文件系统存储结构 268

7.6.2JFFS2 270

7.6.3在Linux中使用JFFS/JFFS2 275

7.6.4 MTD的其他用法:使用RAMDISK制作启动内核 278

7.7 YAFFS文件系统 279

7.7.1 YAFFS的下载与安装 280

7.7.2 YAFFS与JFFS/JFFS2的不同点 280

7.7.3 YAFFS实现机制 281

8.1 LCD显示器基本原理 288

第8章嵌入式图形用户界面基础 288

8.2.1 MiniGUI 289

8.2嵌入式GUI 289

8.2.2 Microwindows 290

8.2.3 Microwindows_0.90_release的安装 291

8.3 Microwindows的系统框架 296

8.3.1设备驱动 297

8.3.2MicroGUI——设备无关图形引擎 302

8.3.3Microwindows的应用程序接口API 303

8.4图形引擎层 304

8.5编译环境的选项(Makefile文件设置) 309

8.6.1窗口的基本元素 310

8.6基于Microwindows类型的API的程序设计 310

8.6.2“Hello world”,你的第一个Microwindows程序 311

8.6.3图形绘制函数小节 320

8.6.4 Microwindows API的优缺点 321

第9章基于Nano-X的嵌入式GUI设计 322

9.1 Client/Server模式 322

9.2 Nano-X风格的“Hello World” 323

9.3 Nano-X窗口管理器 328

9.4程序中使用位图资源 328

9.4.1将位图变成C语言源程序 328

9.4.2图像尺寸 329

9.4.3图像显示 329

9.5从文件中加载图片 332

9.6文字输出与字体 333

9.6.1文字输出函数 333

9.6.2字体的基础知识 334

9.6.3字体标识符 334

9.7高级用户界面设计 337

9.7.1事件响应 338

9.7.2窗口间通信 339

9.7.3 多窗口应用程序 340

9.7.4窗口控件 344

9.7.5游戏制作 352