《主流ARM嵌入式系统设计技术与实例精解》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:苏东编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121045540
  • 页数:495 页
图书介绍:本书重点介绍了主流ARM应用系统的开发与实践,全书基于目前较为通用、流行的ARM处理器,介绍了其原理、硬件结构、硬件电路设计与开发、软件开发,加以大量的应用系统实例作为描述案例。全书采用穿插式的介绍方式,前后内容具有很大的关联性。全书共分为11章,第1章对嵌入式系统和应用加以概述;第2章介绍ARM处理器最小系统硬件设计以及外围电路设计,这也是基于ARM的嵌入式应用系统硬件设计的关键;第3章介绍了常用硬件、软件开发工具以及软件开发环境的搭建等;第4章介绍了嵌入式操作系统Linux/uClinux的移植;第5章介绍了基于ARM处理器的底层开发技术;第6章描述了主流嵌入式GUI的对比与移植;第7章到第11章则详细地介绍了5个具体的设计实例,包含了丰富的接口电路、软件例子代码等。介绍的处理器包含了ARM7TDMI、ARM9TDMI、ARM926e、PXA27X、OMAP系列等主流ARM处理器。内容涉及多媒体手机开发、IP Camera开发、个人多媒体中心(PMP)开发、家庭网关开发等。本书内容是作者结合自己的实际开发经验及一些开源的技术资料为主进行阐述的。

第1章 嵌入式系统与ARM处理器 1

1.1 嵌入式系统特性 1

1.1.1 功能特定性 1

1.1.2 规模可变性 2

1.1.3 实时性与稳定性 2

1.1.4 系统的其他特性 3

1.2 嵌入式系统的分类与应用 4

1.2.1 按照系统组成分类 4

1.2.2 按照系统应用分类 5

1.2.3 按照系统实时性分类 7

1.3 ARM处理器体系结构 7

1.3.1 ARM处理器概述 8

1.3.2 ARM内核种类分类 9

1.4 ARM处理器工作模式 12

1.4.1 ARM和Thumb状态 12

1.4.2 ARM处理器模式 13

1.4.3 ARM寄存器介绍 13

1.4.4 ARM体系结构的异常中断 17

1.4.5 ARM体系结构中的存储系统 18

1.5 嵌入式操作系统概述 20

1 5 1 VxWorks 21

1.5.2 QNX 22

1.5.3 Palm OS 22

1.5.4 Windows CE 22

1.5.5 uClinux 23

1.5.6 Linux 23

1.5.7 uC/OS-Ⅱ 24

1.5.8 Nuclues 24

1.6 本章小结 25

第2章 基于ARM处理器的硬件系统设计与调试技术 27

2.1 常用内存技术介绍 27

2.1.1 Flash(快闪存储器) 27

2.1.2 SRAM(静态随机存取存储器) 29

2.1.3 SDRAM(同步动态RAM) 30

2.1.4 DDR SDRAM(双倍数据速率内存) 30

2.1.5 MCP技术 31

2.2 Boot介绍 32

2.2.1 大/小端 32

2.2.2 外围内存扩展接口 32

2.2.3 启动选择 39

2.2.4 内存地址重映射 39

2.3 硬件系统及外围接口电路设计 40

2.3.1 电源电路设计 41

2.3.2 Reset电路设计 46

2.3.3 时钟电路设计 48

2.3.4 地址/数据总线接口 49

2.3.5 JTAG电路设计 51

2.3.6 RS-232串行接口电路 52

2.3.7 以太网接口设计 54

2.3.8 USB接口电路设计 56

2.3.9 I2C接口电路设计 59

2.3.10 SPI接口电路设计 59

2.3.11 GPIO(通用I/O接口)电路设计 60

2.3.12 LCD接口电路设计 62

2.3.13 TouchPanel接口 65

2.3.14 MMC/SD卡接口 67

2.3.15 PCI接口设计 68

2.3.16 其他外围接口 70

2.4 硬件设计中需要注意的几个问题 71

2.4.1 IC元件的选择 71

2.4.2 元件封装设计 71

2.4.3 PCB设计精度 72

2.4.4 分离元件的正确使用 72

2.4.5 高速PCB设计方法 73

2.4.6 PCB设计的一般原则 74

2.4.7 高速PCB设计中的仿真技术 75

2.5 硬件调试方法 78

2.5.1 硬件板级调试 79

2.5.2 小系统调试 79

2.5.3 系统整体调试 80

2.6 本章小结 80

第3章 开发工具与开发环境 81

3.1 常用ARM开发工具 81

3.1.1 Banyan-UE仿真器 82

3.1.2 Multi-ICE仿真器 82

3.1.3 Banyan-UE的安装与使用 83

3.2 ARM集成开发环境 88

3.2.1 ARM RealView 88

3.2.2 ARM SDT2.5 88

3.2.3 ARM ADS1.2 88

3.3 ADS的基本使用 89

3.3.1 CodeWarrior For ADS IDE 89

3.3.2 AXD调试器的使用介绍 92

3.3.3 ADS命令行命令介绍 96

3.3.4 ADS下可执行文件组成及内存映射 98

3.3.5 ADS下的程序装载过程 99

3.4 开发编译环境 100

3.4.1 VMware WorkStation虚拟机介绍 101

3.4.2 Linux编译开发环境的建立 108

3.4.3 交叉编译器arm-elf-gcc 118

3.4.4 汇编器arm-elf-as 124

3.4.5 链接器arm-elf-ld 126

3.4.6 库管理器arm-elf-ar 128

3.4.7 Linkcmds链接命令文件 129

3.4.8 makefile介绍 135

3.4.9 编写一个makefile 137

3.5 软件维护与建立的工具 142

3.5.1 Autoconf/Automake 142

3.5.2 ./configure配置脚本 144

3.5.3 autogen.sh的介绍 148

3.6 代码管理CVS 148

3.6.1 CVS简介 149

3.6.2 CVS的使用方法 152

3.6.3 RedHat下CVS的配置 153

3.6.4 WinCVS介绍 155

3.7 本章小结 158

第4章 嵌入式Linux系统的移植 159

4.1关于 Boot Loader的介绍 159

4.1.1 rrload介绍 159

4.1.2 U-Boot介绍 162

4.1.3 Blob介绍 166

4.1.4 Vivi介绍 167

4.1.5 Boot Loader的工作流程 169

4.1.6 Boot Loader的移植 173

4.1.7 LDS文件的简单说明 182

4.2 内核的移植 183

4.2.1 Linux内核介绍 183

4.2.2 基于OMAP5910的Linux-2.4.21的移植 187

4.2.3 基于S3C2410的Linux-2.6.14移植 194

4.2.4 基于S3C44B0x的uClinux-2.6.14移植 200

4.3 文件系统介绍 206

4.3.1 文件系统的生成 207

4.3.2 jffs文件系统 210

4.3.3 jffs2文件系统 213

4.3.4 ext2文件系统 218

4.3.5 cramfs文件系统 219

4.3.6 FAT文件系统 220

4.3.7 NFS文件系统 221

4.3.8 yaffs文件系统 222

4.3.9 ReiserFS文件系统 229

4.3.10 devfs文件系统 232

4.4 本章小结 233

第5章 基于ARM处理器的底层驱动开发 235

5.1 有关ARM的汇编语言编程 235

5.1.1 ARM汇编伪指令介绍 236

5.1.2 模块化程序设计 237

5.1.3 混合语言编程 238

5.2 裸机底层驱动设计方法 242

5.2.1 复位向量表 243

5.2.2 中断服务程序 245

5.2.3 程序调试方式 254

5.3 基于Linux操作系统的底层驱动技术 255

5.3.1 设备驱动概述 255

5.3.2 设备类型分类 256

5.3.3 设备驱动中关键数据结构 257

5.3.4 设备驱动程序模板与实现 260

5.3.5 设备驱动程序的使用 270

5.4 本章小结 273

第6章 Linux下的GUI开发技术 275

6.1 Linux下的主流GUI介绍 275

6.1.1 MiniGUI介绍 276

6.1.2 Qt介绍 278

6.1.3 MicroWindows介绍 279

6.1.4 OpenGUI介绍 280

6.1.5 主流GUI对比 280

6.2 GUI的移植与中文化 281

6.2.1 MicroWindows的移植 281

6.2.2 MiniGUI的移植 283

6.2.3 Qt/Embedded的移植 290

6.3 本章小结 293

第7章 基于Samsung S3C4510B的系统设计实例 295

7.1 系统概述 295

7.2 硬件接口电路设计 296

7.2.1 有关S3C4510B处理器 296

7.2.2 系统管理器 297

7.2.3 HDLC通道的使用 299

7.2.4 Flash存储器接口 301

7.2.5 SDRAM存储器接口 302

7.2.6 异步串行通信口 302

7.2.7 复位电路与晶振电路 303

7.2.8 以太网接口 304

7.2.9 JTAG接口 305

7.2.10 电源电路 305

7.2.11 扩展LCD接口 305

7.3 硬件编程举例 306

7.3.1 GPIO编程参考 307

7.3.2 UART编程参考 307

7.3.3 I2C接口编程参考 310

7.4 uClinux编程参考 314

7.4.1 裸机Flash烧写方法 314

7.4.2 内核的移植 316

7.4.3 在uClinux下添加应用程序的方法 319

7.4.4 uClinux下的串口编程和Socket编程 324

7.4.5 基于uClinux的Web服务器应用程序设计 329

7.5 本章小结 332

第8章 基于Intel PXA271的CDMA通信终端开发实例 333

8.1 系统概述 333

8.1.1 PXA27x处理器介绍 333

8.1.2 PXA271处理器特点 335

8.2 系统硬件接口设计 336

8.2.1 电源电路设计 336

8.2.2 LCD接口设计 340

8.2.3 AC97 Audio CODEC接口设计 341

8.2.4 键盘接口设计 344

8.2.5 与CDMA模块的接口设计 346

8.2.6 MMC/SD卡接口设计 348

8.2.7 SSP接口介绍 350

8.2.8 其他外围接口介绍 350

8.3 系统软件开发 351

8.3.1 软件开发平台搭建 351

8.3.2 有关MMX指令 354

8.3.3 SSP接口编程技术 354

8.4 本章小结 360

第9章 基于Samsung 2510A的IP网络MPEG2/MPEG4编解码器开发实例 361

9.1 系统概述 363

9.2 硬件接口设计 364

9.2.1 与编解码器的接口设计 364

9.2.2 编码(Encoder)部分接口 364

9.2.3 解码(Decoder)部分接口 367

9.2.4 VW2010小系统设计 370

9.3 软件设计 373

9.3.1 软件移植介绍 373

9.3.2 内核驱动介绍 374

9.3.3 上层应用程序 382

9.4 本章小结 386

第10章 基于Samsung S3C2410的PDA开发实例 387

10.1 系统概述 387

10.2 系统硬件接口设计 388

10.2.1 CPU核心部分接口电路 389

10.2.2 Memory接口部分 392

10.2.3 Audio接口 394

10.2.4 USB接口设计 396

10.2.5 MMC/SD卡接口设计 397

10.2.6 触摸屏接口设计 398

10.2.7 LCD接口 399

10.3 系统软件设计 401

10.3.1 触摸屏驱动设计 401

10.3.2 IIS驱动 404

10.4 本章小结 410

第11章 基于TI OMAP591x处理器的加密通信终端开发实例 411

11.1 系统概述 411

11.2 硬件平台设计 413

11.2.1 OMAP5910处理器架构介绍 413

11.2.2 晶振电路设计部分 417

11.2.3 存储系统部分 420

11.2.4 电源电路设计部分 426

11.2.5 调试接口部分ETM和JTAG 429

11.2.6 系统低功耗设计举措 431

11.2.7 与GSM模块的接口设计 440

11.2.8 语音输入输出接口设计 443

11.2.9 和弦芯片接口电路 446

11.2.10 LCD接口 450

11.2.11 有关摄像头接口 465

11.3 软件设计介绍 467

11.3.1 CCS基本设置方法 467

11.3.2 关于GEL文件 469

11.3.3 在CCS下烧写Boot Loader的方法 474

11.3.4 McBSP接口程序设计 474

11.3.5 CODEC接口程序 476

11.3.6 I2C接口应用程序 480

11.4 多处理器平台设计技术 483

11.4.1 处理器Mailbox技术 484

11.4.2 DSP Gateway架构 484

11.4.3 DSP Gateway下的Mailbox机制 486

11.4.4 ARM Linux下访问DSP Gateway设备 487

11.4.5 DSP端的编程 488

11.4.6 DSP task程序的执行 493

11.4.7 DSP Gateway的应用 493

11.5 本章小结 494

参考文献 495