ARM微控制器基础与实战

ARM微控制器基础与实战
作 者: 周立功
出版社: 北京航空航天大学出版社
丛编项: 周立功单片机公司策划系列丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 嵌入式计算机
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者:周立功周立功,男,1964年3月出生,毕业于东华大学自动化及计算机系,高级工程师,中国单片机学会理事,中国海洋大学讲座教授,硕士生导师,主要研究方向为嵌入式系统与现场总线,目前正在从事80C51、ARM与NiosII等软核SoC的研究与开发。1981年6月参加工作,先后在大型国有企业担任过工段长、车间主任、团委书记、厂长、党委书记,先后被评为省及国家级劳动模范与新长征突击手,长期从事微机、单片机与嵌入式系统应用推广、开发工作。早期主要从事6502、Z80、8080及其5G14500(一位机)微机应用开发及工业低温辐射远红外节电技术应用与研究等工作,在1987年就出版过《工业低温辐射远红外节电技术》专著。从1994年11月开始创办了广州周立功单片机发展有限公司、广州致远电子有限公司除担任董事长与总经理之外,还继续从事实际的技术开发工作并任首席系统设计师和软件架构师,致力于单片机与嵌入式系统技术的推广及其产业化工作。深入浅出ARM7:LPC213x/214x(下册)>>更多作品

内容简介

以ARM控制器LPC2104及基于LPC2104的开发学习板EasyARM2104人手,逐步引导读者掌握使用开发ARM的基本知识。本书分3个部分:第1部分为基础篇,包括第1章和第2章,主要从ARM芯片开发者的角度介绍ARM7TDMI的体系结构和指令系统。第2部分为实验篇,包括第3章、第4章和第5章,详细介绍ARM控制器LPC2104的内部结构和开发学习板EasyARM2104的硬件结构等知识,给出LPC2104的各个功能部件的编程方法,包括汇编代码和C语言代码。第3部分为提高篇,包括第6章~第13章,介绍如何把嵌入式实时操作系统µC/OS-IILPC2104,在不同情况下如何编译这些代码。然后介绍LPC2104的几个重要功能部件在µC/OS-I动程序(中间件),以及其它功能部件在µC/OS-II法。本书可作为高等院校嵌入式系统课程的参考用书,以及ARM应用技术开发人员的参考手册。

图书目录

第1章 从程序员角度看ARM7TDMI —S

1. 1 简 介

1. 1. 1 ARM

1. 1. 2 ARM的体系结构

1. 1. 3 ARM7TDMI —S

1. 2 ARM7TDMI —S 的模块和内核框图

1. 3 体系结构直接支持的数据类型

1. 4 处理器状态

1. 5 处理器模式

1. 6 内部寄存器

1. 6. 1 简 介

1. 6. 2 ARM状态寄存器集

1. 6. 3 Thumb状态寄存器集

1. 7 程序状态寄存器

1. 7. 1 简 介

1. 7. 2 条件代码标志

1. 7. 3 控制位

1. 7. 4 保留位

1. 8 异 常

1. 8. 1 简 介

1. 8. 2 异常人口/出口汇总

1. 8. 3 进入异常

1. 8. 4 退出异常

1. 8. 5 快速中断请求

1. 8. 6 中断请求

1. 8. 7 中 止

1. 8. 8 软件中断指令

1. 8. 9 未定义的指令

1. 8. 10 异常向量

1. 8. 11 异常优先级

1. 9 中断延迟

1. 9. 1 最大中断延迟

1. 9. 2 最小中断延迟

1. 10 复 位

1. 11 存储器及存储器映射I/O

1. 11. 1 简 介

1. 11. 2 地址空间

1. 11. 3 存储器格式

1. 11. 4 未对齐的存储器访问

1. 11. 5 指令的预取和自修改代码

1. 11. 6 存储器映射的I/O

1. 12 寻址方式简介

1. 13 ARM7TDMI —S 指令集简介

1. 13. 1 简 介

1. 13. 2 ARM指令集

1. 13. 3 Thumb指令集

1. 14 协处理器接口简介

1. 14. 1 简 介

1. 14. 2 可用的协处理器

1. 15 调试接口简介

第2章 ARM7TDMI -S 指令集及汇编

2. 1 ARM处理器寻址方式

2. 2 指令集介绍

2. 2. 1 ARM指令集

2. 2. 2 Thumb指令集

2. 3 伪指令

2. 3. 1 符号定义伪指令

2. 3. 2 数据定义伪指令

2. 3. 3 报告伪指令

2. 3. 4 汇编控制伪指令

2. 3. 5 杂项伪指令

2. 3. 6 ARM伪指令

2. 3. 7 Thumb伪指令

2. 4 ARM汇编程序设计

2. 5 C与汇编混合编程

2. 5. 1 内嵌汇编

2. 5. 2 访问全局变量

2. 5. 3 C与汇编相互调用

第3章 LPC2106/2105/2104硬件结构与功能

3. 1 简 介

3. 1. 1 特 性

3. 1. 2 引脚信息

3. 2 LPC2106/2105/2104存储器寻址

3. 2. 1 片内存储器

3. 2. 2 存储器映射

3. 2. 3 LPC2106/2105/2104存储器重新映射和BootBlock

3. 2. 4 预取指中止和数据中止异常

3. 3 系统控制模块

3. 3. 1 系统控制模块功能汇总

3. 3. 2 引脚描述

3. 3. 3 品体振荡器

3. 3. 4 寄存器描述

3. 3. 5 外部中断输入

3. 3. 6 存储器映射控制

3. 3. 7 PLL 锁相环

3. 3. 8 功率控制

3. 3. 9 复 位

3. 3. 10 VPB分频器

3. 3. 11 唤醒定时器

3. 4 存储器加速模块

3. 4. 1 介 绍

3. 4. 2 存储器加速器模块的操作模式

3. 4. 3 MAM配置

3. 4. 4 寄存器描述

3. 5 向量中断控制器

3. 5. 1 特 性

3. 5. 2 描 述

3. 5. 3 寄存器描述

3. 5. 4 VIC寄存器

3. 5. 5 中断源

3. 5. 6 VIC使用事项

3. 6 GPIO

3. 6. 1 特 性

3. 6. 2 应 用

3. 6. 3 引脚描述

3. 6. 4 寄存器描述

3. 6. 5 GPIO使用注意事项

3. 7 引脚连接模块

3. 7. 1 介 绍

3. 7. 2 应 用

3. 7. 3 寄存器描述

3. 8 UART0

3. 8. 1 特 性

3. 8. 2 引脚描述

3. 8. 3 寄存器描述

3. 8. 4 结 构

3. 9 UART1

3. 9. 1 特 性

3. 9. 2 引脚描述

3. 9. 3 寄存器描述

3. 9. 4 结 构

3. 10 I2C接口

3. 10. 1 特 性

3. 10. 2 应 用

3. 10. 3 描 述

3. 10. 4 引脚描述

3. 10. 5 寄存器描述

3. 10. 6 结 构

3. 11 SPI接口

3. 11. 1 特 性

3. 11. 2 描 述

3. 11. 3 引脚描述

3. 11. 4 寄存器描述

3. 11. 5 结 构

3. 12 定时器0和定时器1

3. 12. 1 特 性

3. 12. 2 应 用

3. 12. 3 引脚描述

3. 12. 4 寄存器描述

3. 12. 5 定时器举例操作

3. 12. 6 结 构

3. 13 脉宽调制器 PWM

3. 13. 1 特 性

3. 13. 2 描 述

3. 13. 3 引脚描述

3. 13. 4 寄存器描述

3. 14 实时时钟

3. 14. 1 特 性

3. 14. 2 描 述

3. 14. 3 结 构

3. 14. 4 寄存器描述

3. 14. 5 RTC中断

3. 14. 6 混合寄存器组

3. 14. 7 完整时间寄存器

3. 14. 8 时间计数器组

3. 14. 9 报警寄存器组

3. 14. 10 基准时钟分频器 预分频器

3. 15 看门狗

3. 15. 1 特 性

3. 15. 2 应 用

3. 15. 3 描 述

3. 15. 4 寄存器描述

3. 15. 5 方框图

3. 16 Flash存储器系统和编程

3. 16. 1 Flash存储器系统

3. 16. 2 FlashBoot装载程序

3. 16. 3 特 性

3. 16. 4 应 用

3. 16. 5 描 述

3. 16. 6 Boot处理流程图

3. 16. 7 扇区数

3. 16. 8 JTAGFlash编程接口

第4章 EasyARM2104开发实验板

4. 1 功能特点

4. 2 硬件原理

4. 2. 1 原理图

4. 2. 2 原理说明

4. 3 硬件结构

4. 3. 1 布局图

4. 3. 2 跳线器及连接器说明

4. 4 实验板使用基础

4. 4. 1 调试框图

4. 4. 2 调试设置及操作

4. 4. 3 固化程序

4. 4. 4 其 它

第5章 LPC2106/2105/2104基础实验

5. 1 LPC2106/2105/2104系统基础

5. 1. 1 系统时钟介绍

5. 1. 2 REMAP操作及调试

5. 1. 3 启动代码说明

5. 2 LPC2106/2105/2104功能部件实战

5. 2. 1 GPIO

5. 2. 2 中 断

5. 2. 3 定时器

5. 2. 4 UART

5. 2. 5 12C接口

5. 2. 6 SPI接口

5. 2. 7 PWM

5. 2. 8 实时时钟

5. 2. 9 WDT

5. 2. 10 低功耗

5. 2. 11 1AP应用

5. 2. 12 除法运算

5. 3 PC机人机界面

5. 3. 1 EasyARM软件窗口介绍

5. 3. 2 EasyARM软件通信协议

5. 3. 3 EasyARM应用例程

第6章 移植uC/OS-Ⅱ

6. 1 uC/OS-II简介

6. 2 移植规划

6. 2. 1 编译器的选择

6. 2. 2 任务模式的取舍

6. 2. 3 支持的指令集

6. 2. 4 对RTOS系统内核与任务分别编译的支持

6. 3 编写LPC2106/2105/2104的启动代码

6. 3. 1 为何要编写启动代码

6. 3. 2 文件的划分

6. 3. 3 异常向量表

6. 3. 4 系统初始化代码

6. 3. 5 初始化CPU堆栈InitStack

6. 3. 6 异常处理代码与C语言接口的例子

6. 3. 7 系统基本初始化TargetResetlnit 的例子

6. 3. 8 初始化库函数的堆

6. 4 移植uC/OS-Ⅱ

6. 4. 1 关于头文件Includes. h和Config. h

6. 4. 2 不依赖于编译的数据类型

6. 4. 3 使用软中断SWI作底层接口

6. 4. 4 软中断的汇编接口

6. 4. 5 OLENTER_CRITICAL 和OS_EXIT_CRITICAL

6. 4. 6 OS_STK_GROWTH

6. 4. 7 OlTASK_SW

6. 4. 8 OSStartHighRdy

6. 4. 9 OSCtxSw 和OSIntCtxSw

6. 4. 10 中断程序及系统时钟节拍中断服务程序的编写

6. 4. 11 OSTaskStkInt

6. 4. 12 . . . Hook 函数

6. 4. 13 移植增加的特定函数

6. 5 移植uC/OS-II的例子

6. 5. 1 移植例子中的PC. C PC中的功能函数

6. 5. 2 范例1的移植

6. 5. 3 范例2的移植

6. 5. 4 范例3的移植

第7章 移植代码的使用

7. 1 高性能的应用

7. 1. 1 选择指令集

7. 1. 2 建立ADS的工程

7. 1. 3 调试参数的设置

7. 1. 4 编程注意事项

7. 2 高代码密度的应用

7. 2. 1 选择指令集

7. 2. 2 建立ADS的工程

7. 2. 3 调试参数的设置

7. 2. 4 编程注意事项

7. 3 性能与代码密度兼顾的应用

7. 3. 1 选择指令集

7. 3. 2 建立ADS的工程

7. 3. 3 调试参数的设置

7. 3. 4 编程注意事项

7. 4 uC/OS-Ⅱ与应用代码分别编译的应用

7. 4. 1 分别编译的必要性

7. 4. 2 分别编译的局限性

7. 4. 3 生成uC/OS-II的ROM映像代码 写入Flash中

7. 4. 4 生成应用程序代码

7. 4. 5 注意事项

第8章 移植代码新增的函数手册和配置手册

8. 1 新增的函数手册

8. 2 新增的配置手册

第9章 中间件之数据队列

9. 1 概 述

9. 2 使 用

9. 2. 1 配置选项

9. 2. 2 函数手册

9. 2. 3 使用范例

9. 3 原 理

9. 3. 1 数据结构

9. 3. 2 建立数据队列

9. 3. 3 FIFO方式发送数据

9. 3. 4 LIFO方式发送数据

9. 3. 5 取得数据

9. 3. 6 清空数据队列

9. 3. 7 取得数据队列状态

第10章 中间件之串口驱动

10. 1 概 述

10. 2 使 用

10. 2. 1 配置选项

10. 2. 2 函数手册

10. 2. 3 使用范例

10. 3 原 理

10. 3. 1 初始化UART0

10. 3. 2 UART0中断处理例程

10. 3. 3 发送一个字节

10. 3. 4 发送多个字节

10. 3. 5 接收一个字节

第11章 中间件之I2C总线驱动

11. 1 概 述

11. 2 使 用

11. 2. 1 函数手册

11. 2. 2 使用范例

11. 3 原 理

11. 3. 1 初始化I2C

11. 3. 2 写I2C从器件

11. 3. 3 从I2C从器件读数据

11. 3. 4 I2C中断服务程序

第12章 中间件之SPI总线驱动

12. 1 概 述

12. 2 使 用

12. 2. 1 配置选项

12. 2. 2 函数手册

12. 2. 3 使用范例

12. 3 原理

12. 3. 1 初始化SPl

12. 3. 2 获取SPI状态

12. 3. 3 开始访问SPI 获取SPI访问权

12. 3. 4 读写SPI

12. 3. 5 访问SPI结束 归还SPI访问权

12. 3. 6 SPI中断服务程序

第13章 在uC/OS-II中使用其它片内外设

13. 1 概 述

13. 2 通用I/O的使用

13. 3 定时器的使用

13. 4 PWM的使用

13. 5 实时时钟的使用

附录A 常见问题

A. 1 程序写入Flash后不能运行

A. 2 进人AXD后无法调试

A. 3 不能进入ISP

A. 4 从JTAG调试出错

A. 5 项目不能拷贝到其它目录

附录B JTAG接口设计指南

附录C ARM指令集相关列表汇总

C. 1 ARM指令列表

C. 2 Thumb指令列表

C. 3 汇编预定义变量及伪指令

C. 4 其 它

附录D PHLIPS LPC ARM微控制器系列产品列表

参考文献