|
深入浅出ARM7——LPC213x/LPC214x(上册)

(点击图片可放大) |
深入浅出ARM7——LPC213x/LPC214x(上册)
作者:周立功 张华等
定价:45元
书号:7-81077-673-8
北京航空航天大学出版社
出版日期:200506
开本:787×960 1/16开
字数:689千字
购买联系: 北航出版社 网上购书
|
| 内容简介 |
本书以PHILIPS公司的LPC2131
ARM微控制器为核心,以EasyARM2131开发板为基础,深入浅出地对LPC213x系列ARM微控制器的使用进行了详细、全方位的阐述。全书共分5章。第1章介绍EasyARM2131硬件开发平台;第2章介绍嵌入式开发软件平台;第3章着重介绍LPC2131微控制器的体系结构和启动代码;第4章是本书的核心,以LPC2131微控制器功能部件为主线,详细介绍该芯片所有功能部件的使用,并提供详细的例程;第5章介绍LPC213x系列微控制器的硬件结构。
本书可作为从事嵌入式系统应用开发工程师的参考资料,也可作为高等院校电子、自动化、机电一体化、计算机等相关专业嵌入式系统的教学参考书,特别适合于进行ARM7嵌入式开发的初学者。 |
| 前 言 |
| 近年来,32位嵌入式系统发展很快,32位单片机已逐渐占领8位机的市场,并以很高的性价比赢得了越来越多的用户的青睐。随着科技和工艺的进步,32位单片机的优势会更加突显出来,将会成为嵌入式系统的主流。在32位嵌入式系统中,基于ARM的应用占据了大部分份额。
但是,很多习惯了8位机或者从来没有接触过ARM的工程师,一听到32位嵌入式系统或者是ARM,就会有复杂、很难入门的感觉,甚至还会觉得用ARM就必须用操作系统。因而,有些工程师依然还在采用明知有瓶颈或者缺陷的8位机方案,一些初学者也还是选择8位机作为起点。为了改变这种尴尬的局面,帮助更多的工程师完成产品转型,带领更多的嵌入式爱好者进入32位嵌入式世界,我们结合多年ARM开发的经验,组织编写了这套ARM7入门级教材。
本书的理念是: 以讲述51单片机的方式,从实战的角度出发阐述ARM,把ARM当作功能强大的单片机使用。本书所有实验均与操作系统无关,全部为前后台应用,甚至读者不必熟悉ARM体系结构与汇编指令也能快速掌握ARM7。
本书各章节内容安排如下:
第1章——EasyARM2131开发板硬件结构。这是本书的硬件平台,主要对硬件原理进行了详细介绍。
第2章——ADS集成开发环境以及EasyJTAG仿真器使用。这是本书论述嵌入式开发的软件平台,也可作为嵌入式开发的通用软件平台。
第3章——LPC2131使用指南。本章讲述了LPC2130系列芯片的硬件体系结构以及启动代码。读透本章,读者很容易编写自己的启动代码。
第4章——LPC2131功能部件。本章是本书的重点,以LPC2131内部功能部件为主线,全方位、多角度地对LPC213x的功能部件进行了详细介绍,并提供了详细的实验例程。读者可直接将这些源代码应用到自己的程序当中。
第5章——LPC2132/2134/2136/2138硬件结构。本章将LPC213x其他芯片和LPC2131进行比较,并对新增的功能进行介绍。
《深入浅出ARM7——LPC213x/LPC214x(下册)》是以μC/OSⅡ为基础,全面介绍基于OS的各种应用设计,同时介绍LPC214x系列ARM的原理及其USB驱动开发与源代码分析。
参与本书编写的主要人员有:周立功、张华、陈锡炳、陈明计、严寒亮、黄绍斌、周立山、郑明远、叶皓贲和戚军。全书由周立功负责大纲的策划、内容的安排及审校。
在本书出版之际,感谢PHILIPS半导体公司的金宇杰、CK
Phua、郭志锐等先生的大力支持,感谢北京航空航天大学出版社。如果没有他们的帮助和努力,这本书不会这么快出版。
由于作者水平有限,书中难免有疏忽、不恰当甚至错误的地方,恳请各位老师及同行指正。
作者
2005年4月
|
| 目 录 |
第1章
EasyARM2131开发板硬件结构
1.1 功能特点1
1.2 硬件原理3
1.2.1 电路原理图3
1.2.2 原理说明3
1.3 硬件结构13
1.3.1 元件布局图13
1.3.2 跳线器说明13
1.3.3 连接器说明21
1.4 硬件使用的资源22
第2章 ADS集成开发环境及EasyJTAG仿真器使用
2.1 ADS 1.2集成开发环境的组成23
2.1.1 CodeWarrior IDE简介24
2.1.2 AXD调试器简介24
2.2 工程的编辑25
2.2.1 建立工程25
2.2.2 建立文件26
2.2.3 添加文件到工程27
2.2.4 编译连接工程28
2.2.5 打开旧工程30
2.3 工程的调试30
2.3.1 选择调试目标30
2.3.2 调试工具条31
2.4 LPC2131微控制器工程模板32
2.4.1 为ADS1.2增加LPC2131专用工程模板32
2.4.2 使用LPC2131专用工程模板建立工程33
2.4.3 从LPC2100工程模板到LPC2131工程模板35
2.5 EasyJTAG仿真器的安装与使用38
2.5.1 安装EasyJTAG仿真器39
2.5.2 使用EasyJTAG仿真器39
2.6 固化程序41
2.6.1 使用JTAG接口下载42
2.6.2 使用ISP下载42
2.7 在开发板上运行第一个程序44
2.7.1 建立工程45
2.7.2 添加代码46
2.7.3 编译连接工程48
2.7.4 进入AXD调试48
2.7.5 在Flash中调试50
2.7.6 脱机运行50
第3章 LPC2131使用指南
3.1 简介51
3.1.1 概述51
3.1.2 LPC2131/2132/2134/2136/2138特性52
3.1.3 器件信息53
3.2 引脚信息53
3.2.1 LPC2131的引脚分布53
3.2.2 LPC2131的引脚描述53
3.3 结构概述59
3.4 存储器寻址62
3.4.1 存储器映射62
3.4.2 LPC2131存储器重新映射和Boot Block65
3.4.3 存储器的重新映射65
3.4.4 预取指中止和数据中止异常66
3.4.5 启动代码相关部分67
3.5 系统控制模块70
3.5.1 概述70
3.5.2 引脚描述70
3.5.3 寄存器汇总71
3.5.4 晶体振荡器71
3.5.5 外部中断输入73
3.5.6 存储器映射控制REMAP78
3.5.7 锁相环PLL79
3.5.8 功率控制85
3.5.9 复位87
3.5.10 VPB分频器90
3.5.11 唤醒定时器91
3.5.12 掉电检测92
3.5.13 代码安全和调试93
3.5.14 启动代码相关部分93
3.6 存储器加速模块96
3.6.1 描述96
3.6.2 操作96
3.6.3 MAM结构97
3.6.4 Flash存储器组97
3.6.5 指令锁存和数据锁存98
3.6.6 MAM的操作模式98
3.6.7 MAM配置99
3.6.8 寄存器描述99
3.6.9 MAM使用注意事项100
3.6.10 启动代码相关部分101
3.7 向量中断控制器102
3.7.1 概述102
3.7.2 特性102
3.7.3 结构102
3.7.4 寄存器描述103
3.7.5 中断源109
3.7.6 VIC操作方法110
3.7.7 伪中断112
3.7.8 VIC使用注意事项115
3.7.9 VIC使用举例115
3.7.10 启动代码相关部分116
3.8 引脚连接模块119
3.8.1 概述119
3.8.2 寄存器描述119
3.8.3 使用示例122
3.9 启动代码综述123
3.9.1 文件组成123
3.9.2 Startup.s124
3.9.3 IRQ.s130
3.9.4 Target.c131
3.9.5 config.h134
3.9.6 target.h136
3.9.7 LPC2294.h137
3.9.8 分散加载文件137
3.9.9 启动代码工作流程140
第4章 LPC2131功能部件
4.1 GPIO146
4.1.1 概述146
4.1.2 特性146
4.1.3 引脚描述146
4.1.4 寄存器描述147
4.1.5 GPIO两种应用电路149
4.1.6 使用示例150
4.1.7 注意事项151
4.1.8 基础实验154
4.2 UART0和UART1163
4.2.1 概述163
4.2.2 特性163
4.2.3 引脚描述163
4.2.4 结构164
4.2.5 寄存器描述165
4.2.6 基本操作173
4.2.7 使用示例174
4.2.8 应用175
4.2.9 基础实验175
4.3 I2C0和I2C1187
4.3.1 概述187
4.3.2 特性187
4.3.3 引脚描述187
|
4.3.4 结构188
4.3.5 I2C描述189
4.3.6 寄存器描述201
4.3.7 基本操作205
4.3.8 使用示例206
4.3.9 基础实验206
4.4 SPI接口226
4.4.1 概述226
4.4.2 特性226
4.4.3 引脚描述227
4.4.4 结构228
4.4.5 SPI描述228
4.4.6 寄存器描述233
4.4.7 基本操作236
4.4.8 使用示例239
4.4.9 基础实验240
4.5 SSP控制器250
4.5.1 概述250
4.5.2 特性250
4.5.3 引脚描述250
4.5.4 SSI帧格式251
4.5.5 SPI帧格式252
4.5.6 Microwire帧格式257
4.5.7 寄存器描述259
4.5.8 使用示例264
4.5.9 基础实验265
4.6 定时器0和定时器1275
4.6.1 概述275
4.6.2 特性275
4.6.3 引脚描述275
4.6.4 结构276
4.6.5 寄存器描述276
4.6.6 功能框图283
4.6.7 使用示例285
4.6.8 基础实验286
4.7 脉宽调制器301
4.7.1 概述301
4.7.2 特性301
4.7.3 引脚描述302
4.7.4 结构302
4.7.5 寄存器描述305
4.7.6 基本操作311
4.7.7 使用示例312
4.7.8 基础实验314
4.8 A/D转换器324
4.8.1 概述324
4.8.2 特性324
4.8.3 引脚描述324
4.8.4 寄存器描述325
4.8.5 基本操作328
4.8.6 使用示例329
4.8.7 基础实验330
4.9 实时时钟338
4.9.1 概述338
4.9.2 特性338
4.9.3 结构339
4.9.4 寄存器描述339
4.9.5 混合寄存器340
4.9.6 时间寄存器342
4.9.7 时间计数器344
4.9.8 报警寄存器345
4.9.9 预分频器345
4.9.10 RTC中断348
4.9.11 基本操作349
4.9.12 注意事项350
4.9.13 使用示例351
4.9.14 基础实验351
4.10 看门狗361
4.10.1 概述361
4.10.2 特性361
4.10.3 结构361
4.10.4 寄存器描述361
4.10.5 基本操作364
4.10.6 使用示例364
4.10.7 基础实验365
4.11 中断相关实验373
4.11.1 外部中断374
4.11.2 非向量中断379
4.11.3 向量中断381
4.11.4 中断优先级384
4.11.5 中断嵌套387
4.11.6 软件中断390
4.11.7 快速中断395
4.12 系统控制相关实验399
4.12.1 存储器映射399
4.12.2 PLL405
4.12.3 MAM410
4.12.4 功率控制411
4.12.5 代码安全412
4.13 Flash存储器412
4.13.1 Flash存储系统412
4.13.2 Flash BOOT装载程序413
4.13.3 有效的用户代码415
4.13.4 代码读保护415
4.13.5 ISP——在系统编程417
4.13.6 IAP——在应用编程426
第5章 LPC2132/2134/2136/2138硬件结构
5.1 概述439
5.2 特性439
5.3 应用440
5.4 器件信息440
5.5 功能框图441
5.6 引脚配置442
5.7 引脚连接模块448
5.8 UART1449
5.8.1 特性449
5.8.2 引脚描述450
5.8.3 结构450
5.8.4 寄存器描述452
5.9 A/D转换器456
5.9.1 特性456
5.9.2 描述457
5.9.3 引脚描述457
5.9.4 寄存器描述457
5.10 D/A转换器460
5.10.1 特性460
5.10.2 引脚描述461
5.10.3 寄存器描述461
5.10.4 基本操作461
5.11 向量中断控制器462
附录A书中常用术语缩写解释
附录B上位机软件EasyARM.exe介绍
B.1 EasyARM软件窗口介绍464
B.2 EasyARM软件通信协议466
附录CARM指令集相关列表汇总
C.1 ARM指令列表468
C.2 Thumb指令列表470
C.3 汇编预定义变量及伪指令473
C.4 其他477
|
|
| |
|