《ARM9嵌入式系统开发与实践》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:王黎明,陈双桥,闫晓玲等编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2008
  • ISBN:9787811242393
  • 页数:623 页
图书介绍:本书主要讲述了以SAMSUNG公司的S3C2410为代表的ARM9微处理器的开发流程,内容涵盖了嵌入式系统的软硬件开发两个方面:一是微处理器的接口电路设计、接口时序、电气特性等内容的分析;二讲述对应的软件的实现方法和uc/OS-II、Linux、WinCE及Qt系统在ARM9上的移植方法。

第1章 嵌入式系统体系结构概述 1

1.1嵌入式系统的概念 1

1.2嵌入式系统的组成 2

嵌入式平台的硬件结构 2

板级支持包和嵌入式系统 2

嵌入式系统上的应用程序 2

1.3嵌入式系统的开发流程和优势 3

1.4 ARM微处理器概述 4

ARM简介 4

ARM微处理器的应用领域及特点 4

ARM微处理器系列 5

ARM微处理器结构 7

ARM微处理器的应用选型 8

1.5典型的嵌入式操作系统 9

Linux 9

WinCE 10

VxWorks 10

μC/OS-II 11

Palm OS 11

QNX 12

LynxOS 13

OS-9 13

Windows XP Embedded 13

eCos 13

Nucleus PLUS 14

1.6嵌入式操作系统类型的选择 15

嵌入式操作系统的选择分类 15

嵌入式操作系统的选择标准 16

1.7小结 16

思考与练习 16

第2章 ADS集成开发环境及简易JTAG仿真器的使用 17

2.1 ADS集成开发环境组成 17

应用程序到调试目标 17

根据目标硬件定制存储器映射 21

GUI开发环境 27

2.2使用ADS创建工程 31

建立一个工程 31

编译和链接工程 33

ASM的参考代码 37

2.3用AXD进行代码调试 38

安装并运行ARM-JTAG调试代理ARM9 38

为ARM-JTAG调试代理配置AXD Debugger 39

使用ARM-JTAG在ADS1.20环境下进行仿真调试 40

ARM-JTAG设计电路图 40

2.4小结 41

思考与练习 41

第3章 S3C2410体系结构与外设及最小系统设计 43

3.1 S3C2410处理器介绍 43

S3C2410处理器概述 43

S3C2410处理器引脚描述 44

S3C2410的内核结构 49

3.2 S3C2410特性介绍 50

3.3 S3C2410最小系统设计 53

最小系统框图 53

时钟与电源管理 54

系统时钟控制 55

电源管理 58

时钟与电源管理相关寄存器描述 60

存储器控制概述 62

Boot ROM设计 62

EEPROM/SRAM Bank设计 65

Nand Boot设计 66

SDRAM接口设计 67

存储器相关寄存器 68

S3C2410两种启动方式 74

nGCS片选存储器时序操作 75

S3C2410最小系统硬件电路设计 76

最小系统的程序代码分析 82

最小系统程序的Flash编程 109

3.4利用最小系统调试或烧写程序 124

用MDS通过串口来全速运行和调试应用程序 124

用MDS通过串口烧写应用程序到Flash里 124

3.5小结 124

思考与练习 125

第4章 S3C2410主要外设及功能部件详解 126

4.1 ARM指令 126

常用ARM指令的功能介绍 126

实验电路分析 129

ARM汇编程序编程实例 129

实验测试方法及步骤分析 130

4.2汇编与C语言混合编程 132

ARM过程调用ATPCS 132

汇编与C语言的相互调用 133

汇编与C语言混合编程应用程序 134

实验测试方法与步骤 135

4.3通用I/O端口控制 135

通用I/O口概述 135

通用I/O口相关寄存器描述 136

通用I/O口两种应用电路 137

使用示例及注意事项 138

通用I/O控制单LED实例分析 139

实验检测方法及步骤 142

4.4 UART异步串口通信 142

UART异步串口概述 142

S3C2410的UART控制器 143

UART异步串行口的相关寄存器 146

异步串口应用电路 150

使用示例及注意事项 150

UART串行通信应用编程实例 152

4.5 A/D转换 153

A/D转换的原理 153

A/D转换器概述 154

A/D转换相关寄存器描述 155

A/D转换应用电路 157

A/D转换基本操作和使用示例 158

单通道A/D转换实例分析 159

ADC实验测试方法及步骤 161

4.6 DMA访问 161

DMA访问的原理 161

DMA传送的方式 162

DMA访问相关寄存器描述 162

DMA的操作及注意事项 167

DMA应用程序编程实例 169

DMA实验测试方法及步骤 173

4.7 Nand Flash控制器 173

Nand Flash简介 174

典型的Nand Flash引脚定义和内部结构框图 174

Nand Flash寻址方式 175

Nand Flash的指令与时序 176

S3C2410的Nand Flash控制器 176

Nand Flash相关寄存器 179

Nand Flash寄存器设置举例 181

如何从Nand Flash中读出数据 182

Nand Flash接口电路应用模块 182

Nand Flash应用程序编程实例 183

实验测试方法及步骤 189

4.8 Nor Flash访问 189

Nor Flash简介 189

典型Nor Flash引脚及内部结构 190

Nor Flash读写时序 191

Nor Flash接口应用电路 191

Nor Flash应用程序实例 194

实验测试方法及步骤 197

4.9 PWM控制蜂鸣器和直流电动机 198

PWM简介 198

S3C2410的PWM控制器 198

PWM相关寄存器描述 201

PWM控制器的基本操作 204

PWM应用接口电路图 204

PWM控制蜂鸣器相关函数和功能 205

实验测试方法及步骤 207

PWM控制直流电动机应用电路 207

PWM控制直流电动机相关函数和功能 208

PWM控制直流电动机实验测试方法及步骤 210

4.10 RTC实时时钟 210

实时时钟在嵌入式系统中的作用 210

S3C2410的实时时钟单元 211

RTC实时时钟的结构 211

实时时钟(RTC)相关寄存器 212

RTC实时时钟接口应用电路 215

RTC实时时钟基本操作及注意事项 215

RTC应用程序编程实例 216

实验测试方法及步骤 217

4.11 IIC总线串行通信 218

IIC总线介绍 218

IIC双向传输的接口特性 219

IIC总线数据传送格式和传送过程 220

S3C2410的IIC总线控制器 221

IIC总线相关寄存器描述 221

IIC应用电路图分析 224

IIC总线的基本操作及注意事项 224

IIC应用编程实例 225

IIC总线实验测试方法及步骤 229

4.12定时器中断 230

ARM相关寄存器 230

ARM的异常中断类型 236

异常中断响应过程和返回过程 237

异常中断程序的安装 238

S3C2410的中断控制器 238

异常中断相关寄存器描述 239

定时器中断例程分析及注意事项 244

使用中断的步骤 245

定时器中断应用编程 246

定时器中断实验方法及步骤 248

4.13 WatchDog看门狗定时器 249

看门狗功能简述 249

看门狗的工作原理 250

看门狗控制器的结构 250

看门狗定时器相关寄存器 250

看门狗基本操作和使用示例 252

看门狗应用编程实例 252

实验步骤 254

4.14 USB Device 254

USB总线协议及工作原理 254

USB通信 255

USB Device控制器 256

USB Device应用电路 258

USB Device应用程序编程实例 258

实验测试方法及步骤 261

4.15 LCD显示控制 261

LCD显示原理简介 261

S3C2410的内部LCD控制器 262

LCD控制器接口信号 263

LCD控制器操作 263

LCD相关寄存器描述 267

LCD电路接口设计 273

LCD编程方法及注意事项 274

LCD显示应用编程实例 275

实验测试方法及步骤 279

4.16 LCD触摸屏控制 279

触摸屏简介 279

触摸屏的坐标 281

触摸屏控制器的接口模式 281

触摸屏接口信号 282

触摸屏相关寄存器描述 283

触摸屏应用程序编程实例 285

实验检测方法及步骤 289

4.17 IIS串行音频接口 289

IIS总线规范及工作原理 290

S3C2410的IIS控制器模块 290

IIS相关寄存器描述 293

IIS接口电路设计 295

WAV声音格式 296

音频应用程序编程实例 297

实验测试方法与步骤 302

4.18 USB Host通信 302

USB总线协议及工作原理 302

驱动程序的移植 304

USB Host实验操作 304

4.19 SD卡接口 304

SD卡总线协议及工作原理 305

S3C2410的SD卡控制寄存器 309

SDI编程操作和SDIO编程操作 311

S3C2410的SD卡硬件接口设计 313

SD卡应用程序编程实例 314

实验方法及步骤 316

4.20小结 316

思考与练习 316

第5章 S3C2410外部功能扩展 318

5.1步进电动机控制 318

步进电动机介绍 318

步进电动机参数和指标 319

步进电动机控制系统 319

接口应用电路 319

步进电动机应用程序编程 320

实验测试方法及步骤 323

5.2 8×8点阵驱动 323

LED相关知识 323

8×8 LED点阵的接口原理图 324

8×8点阵基本操作及注意事项 325

8×8 LED点阵应用程序编程实例 325

实验检测方法及步骤 327

5.3 16行列式按键扫描 327

键盘原理介绍 328

行列式键盘原理 328

S3C2410xP的键盘硬件电路 329

行列式键盘按键程序流程 330

按键应用程序编程实例 330

实验测试方法及步骤 333

5.4 TFTP以太网通信 334

以太网协议 334

IP、UDP和TFTP协议介绍 335

以太网接口应用电路 336

应用程序编程实例 339

实验检测方法及步骤 342

5.5 VGA显示 342

VGA接口介绍 342

VGA接口扫描方式 343

TFT接口到VGA接口的转换 343

VGA显示应用程序编程 344

实验检测方法及步骤 346

5.6 CAN总线通信 347

CAN总线简介 347

CAN的分层结构及通信协议 347

CAN总线接口应用电路 349

MPC2510局域网络控制器 350

CAN总线通信应用编程 357

实验测试方法及步骤 369

5.7 CF卡接口扩展 369

CF卡简介 370

CF卡工作原理 370

CF卡协议 371

CF卡接口应用电路 372

CF卡基本操作及使用示例 373

CF应用程序编程实例 374

5.8 IDE硬盘挂接 377

IDE接口介绍 377

IDE硬盘读/写操作 378

IDE硬盘接口应用电路 379

IDE接口应用编程 380

在Linux下挂接硬盘的流程 384

5.9 RS-485通信 384

RS-422与RS-485串行接口标准 384

RS-485串行接口应用电路 385

RS-485通信应用编程 386

程序测试方法及步骤 388

5.10 GPS全球定位 389

GPS简介 389

GPS原理 389

GPS定位信息的提取 390

GPS接口应用电路 391

GPS应用程序编程实例 391

实验方法与步骤 396

5.11 GPRS/GSM无线通信 396

GPRS简介 396

GSM工作原理 396

AT命令语法 397

SMS短消息发送和接收模式 397

GPRS硬件电路设计 400

GPRS/GSM发短消息应用编程实例 401

实验测试方法与步骤 405

5.12小结 405

思考与练习 405

第6章 S3C2410开发平台Bootloader详解 407

6.1 Bootloader的介绍 407

6.2 Bootloader操作模式 407

6.3 Bootloader的启动流程 408

6.4 Bootloader的vivi 409

vivi简介 409

vivi的配置与编译 410

vivi代码第一阶段 410

vivi代码第二阶段 418

6.5 Bootloader之U-Boot 437

U-Boot简介 437

U-Boot主要目录结构 438

U-Boot支持的主要功能 438

U-Boot在S3C2410上的移植 438

6.6自行开发S3C2410的Bootloader 448

Bootloader的功能说明和结构框架 449

Bootloader的应用编程 449

测试方法及步骤 452

6.7小结 453

思考与练习 453

第7章 μC/OS-II在ARM9上的移植 454

7.1 μC/OS-II介绍 454

7.2 μC/OS-II移植 454

OS_CPU.H 455

OS_CPU_C.C文件 457

处理器相关汇编部分OS_CPU_A.S实现 460

7.3 μC/OS-II任务之间的通信与同步方式 464

信号量 464

邮箱 464

消息队列 465

7.4简单多任务程序编程 465

多任务主程序 465

任务1 void Taskl(void*Id) 466

任务2 void Task2(void*Id) 466

主测试函数Main 467

7.5小结 467

思考与练习 468

第8章 WinCE系统在ARM9上的移植 469

8.1 WinCE的安装 469

安装开发环境 469

安装目录 470

构建新的平台 471

新平台的配置、编译 475

8.2 WinCE的image的运行 477

通过USB口下载运行WinCE映像 477

通过以太网烧写WinCE映像文件 479

8.3在WinCE和桌面系统之间建立通信连接 484

8.4 WinCE结构与开发 488

WinCE开发流程 488

用户开发WinCE控件驱动程序的流程 488

用户硬件平台和WinCE内核的接口程序的开发步骤 490

执行中断相关函数 496

执行实时时钟和定时器功能 499

配置寄存器 501

使能电源管理 501

8.5小结 501

思考与练习 501

第9章 Linux系统在ARM9平台的移植 502

9.1移植的概念 502

9.2 Linux内核结构与移植 502

内核结构 503

Linux操作系统移植 504

9.3阅读 ARM Linux内核源码 510

编译环境的建立 510

安装编译工具 512

编译Linux内核 512

9.4 CRAMFS根文件系统的制作 515

9.5 Linux设备驱动程序概述 516

设备驱动和文件系统的关系 516

Linux设备驱动程序接口 517

程序的设备号和入口点 518

Linux驱动程序的加载 519

9.6 Linux下字符设备驱动的添加 519

字符设备的驱动源程序 519

该驱动程序的Makefile文件 523

该驱动相应的测试程序 523

测试过程 524

将应用程序添加到根文件系统 525

9.7 Linux下添加音频设备驱动 525

9.8 Linux下添加IIC总线驱动 528

Linux下IIC总线驱动程序体系结构 528

S3C2410上的IIC总线驱动程序分析 528

IIC总线驱动测试程序 532

9.9 Linux终端与控制台体系 534

Linux终端概述 534

Linux控制台的初始化过程 535

Linux启动命令行与控制台定义 537

控制台与printk输出 539

Linux串口驱动程序与分析 540

Linux串口的应用 545

通过Linux串口实现GPRS拨号上网 547

9.10 Linux下如何挂载U盘 549

9.11小结 552

思考与练习 552

第10章 基于S3C2410平台图形系统开发 553

10.1嵌入式系统下Microwindows的实现 553

两种API: Win32和Nano-X 554

创建一个简单的Nano-X应用程序 556

Expose event机制 557

10.2嵌入式系统下MiniGUI的实现 559

图形用户界面 MiniGUI简介 559

MiniGUI在S3C2410处理器上的移植过程 559

10.3认识Qt/Embedded嵌入式工具开发包 561

Qt介绍 562

Qt/Embedded系统要求 563

Qt架构 564

10.4 Qt/Embedded嵌入式图形开发基础 565

Qt/Embedded开发环境的安装 565

Qt/Embedded开发环境 567

窗体 570

Qt图形设计器对话框 576

Qt桌面外形与感觉 581

Qt/Embedded国际化 582

10.5 Qt/Embedded实战应用开发 583

嵌入式硬件开发平台的选择 584

安装Qt/Embedded工具开发包 585

交叉编译Qt/Embedded的库 585

Hello, World的例子 586

发布一个Qt/Embedded应用到FS241.OXP开发平台 593

添加一个Qt/Embedded应用到QPE 595

10.6小结 596

思考与练习 597

第11章 基于S3C2410完整开发系统的设计 598

11.1开发系统硬件电路设计 598

开发板的资源 598

开发板的硬件布置框图 598

核心板电路分析 599

扩展板电路分析 606

存储器空间分配 611

PCB设计方法 611

电路调试方法 614

11.2软件驱动的开发与调试 615

11.3小结 618

思考与练习 618

附录 书中常用术语缩写解析 619

参考文献 623