
ARM原理与C程式设计
《ARM原理与C程式设计》是2009年西安电子科技大学出版社出版的图书,作者是张勇。
基本介绍
- 书名:ARM原理与C程式设计
- 作者:张勇
- ISBN:978-7-5606-2228-6/TP.1136
- 定价:30.6元
- 出版社:西安电子科技大学出版社
- 出版时间:2009-04
内容简介
本书针对ARM920T核S3C2410A晶片,藉助RVDS和RealVeiw MDK集成开发环境,全面详细地介绍了ARM的体系结构、硬体接口电路设计以及彙编语言与C语言程式设计。全书共分七章,内容包括ARM概述与开发环境建设、ARM体系结构与接口电路、ARM指令集、ARM存储系统及其配置、彙编语言程式设计及系统初始化、C语言程式设计、ARM接口程式设计。本书的特色在于通过完整的程式实例阐述相关的内容。
本书是作者近几年来从事ARM系统设计、开发和教学的结晶。由于ARM体系原理的统一性和ARM C程式设计的通用性,儘管本书内容偏重于ARM920T,但是,对ARM系列晶片的开发,均具有一定的指导意义。
本书可作为电子技术类、通信类、软体工程类研究生和高年级本科生学习ARM晶片级嵌入式程式设计的教材,也可作为从事ARM系统开发的电子工程师和软体工程师及嵌入式爱好者的参考书。
★本书作者可以提供书中全部实例的原始码,有需要的读者可联繫索取。
目录
第一章 ARM概述与开发环境 1
1.1 嵌入式系统的概念 1
1.1.1 嵌入式系统与ARM的关係 1
1.1.2 嵌入式系统与嵌入式作业系统的关係 2
1.1.3 嵌入式系统的研发特点 2
1.2 ARM发展历程及套用领域 3
1.2.1 ARM发展历程及命名规则 3
1.2.2 ARM微处理器系列 4
1.2.3 ARM微处理器套用领域 9
1.3 ARM晶片级开发环境 9
1.3.1 仿真环境建设 10
1.3.2 程式仿真实例与解释 13
本章小结 17
第二章 ARM体系结构与接口电路 18
2.1 ARM微处理器工作模式 18
2.2 ARM暂存器 19
2.2.1 通用暂存器 20
2.2.2 程式状态暂存器 21
2.2.3 PC与指令流水线 23
2.3 ARM异常 23
2.3.1 复位异常 25
2.3.2 中断请求异常 25
2.3.3 快速中断请求异常 26
2.3.4 软体中断异常 27
2.3.5 数据中止异常 27
2.3.6 预取指令异常 27
2.3.7 未定义指令异常 28
2.3.8 异常返回地址 28
2.4 S3C2410存储器配置及接口电路设计 29
2.4.1 存储格式 29
2.4.2 映射存储空间 30
2.4.3 NOR型FLASH接口电路设计 35
2.4.4 NAND型FLASH接口电路设计 38
2.4.5 SDRAM接口电路设计 39
2.5 S3C2410外设接口电路设计 42
2.5.1 片上外设及其映射暂存器 42
2.5.2 LED接口电路设计 44
2.5.3 LCD接口电路设计 48
2.5.4 触控萤幕接口电路设计 50
2.5.5 串口接口电路设计 51
2.5.6 USB接口电路设计 52
2.5.7 SD卡接口电路设计 53
2.5.8 滑鼠和键盘接口电路设计 53
本章小结 54
第三章 ARM指令表 55
3.1 ARM指令学习程式框架 55
3.2 ARM指令格式 56
3.3 ARM指令定址方式 58
3.3.1 数据处理运算元定址 58
3.3.2 字与无符号位元组存储/装入定址 61
3.3.3 双字与半字及有符号位元组存储/装入定址 65
3.3.4 暂存器批量存储/装入定址 67
3.3.5 协处理器存储/装入定址 70
3.4 ARM指令汇总 72
3.4.1 赋值指令 72
3.4.2 算术运算指令 73
3.4.3 跳转指令 80
3.4.4 比较指令 81
3.4.5 逻辑运算指令 82
3.4.6 CPSR访问指令 85
3.4.7 记忆体访问指令 86
3.4.8 软中断指令 95
3.4.9 协处理器指令 95
3.4.10 ARM伪指令 97
本章小结 99
第四章 ARM存储系统及其配置 100
4.1 RealView MDK仿真环境建设 100
4.1.1 开发平台建设 100
4.1.2 第一个MDK工程 101
4.1.3 硬仿真环境设定 104
4.1.4 编译配置 105
4.1.5 线上仿真 108
4.2 Nand Flash启动配置 109
4.3 SDRAM配置 112
4.3.1 MDK启动代码配置SDRAM 112
4.3.2 自定义SDRAM配置代码 117
4.3.3 堆和栈 120
4.4 CP15协处理器 125
4.4.1 CP15协处理器暂存器汇总 125
4.4.2 暂存器c0 126
4.4.3 暂存器c13 129
4.4.4 暂存器c1 130
4.4.5 暂存器c2 131
4.4.6 暂存器c3 131
4.4.7 暂存器c5 131
4.4.8 暂存器c6 131
4.4.9 暂存器c8 131
4.4.10 暂存器c10 132
4.5 MMU配置 132
4.5.1 MMU工作原理 132
4.5.2 地址转译 134
本章小结 137
第五章 彙编语言程式设计及系统初始化 138
5.1 ARM彙编语言程式框架 138
5.1.1 通用输入输出C口配置 140
5.1.2 工程ex5_1的注解及运行情况 147
5.1.3 彙编语言语法 150
5.2 浮点数据处理 152
5.2.1 计算基础 152
5.2.2 数值定标 152
5.2.3 程式代码及结果分析 153
5.3 系统初始化 159
5.3.1 启动代码S3C2410A.s 159
5.3.2 初始化代码zyboot.s 172
5.4 中断服务程式 185
5.4.1 硬体基础 185
5.4.2 EINT2外部中断及其程式设计 186
5.4.3 SWI中断及其注意事项 192
本章小结 193
第六章 C语言程式设计 194
6.1 C程式框架实例 194
6.1.1 跑马灯工程设计 194
6.1.2 跑马灯程式解释 199
6.1.3 C程式框架 201
6.2 SDRAM重定位技术 203
6.3 C语言语法 205
6.3.1 数据类型 205
6.3.2 常用运算符 207
6.3.3 程式控制语句 211
6.3.4 C语言函式 215
6.3.5 演示实例一 216
6.3.6 演示实例二 219
6.4 混合语言程式设计 223
6.4.1 C函式嵌套彙编语句 223
6.4.2 C函式调用彙编子程式 226
6.5 中断服务程式设计 236
6.5.1 异常入口配置 237
6.5.2 SWI中断 239
6.5.3 看门狗中断 244
本章小结 248
第七章 ARM接口程式设计 249
7.1 LED显示控制 249
7.1.1 看门狗定时器秒表 249
7.1.2 定时器1秒表 252
7.2 K9F1208访问技术 256
7.2.1 K9F1208U0C 256
7.2.2 K9F1208读设计 258
7.2.3 K9F1208 Boot设计 263
7.3 串口通信 282
7.3.1 串口配置 282
7.3.2 串口收发程式 283
7.3.3 串口中断编程 286
本章小结 291
附录一 S3C2410专用暂存器地址 292
附录二 S3C2410专用暂存器描述 300
附2.1 存储器配置暂存器 300
附2.2 NAND FLASH暂存器 304
附录三 S3C2410晶片管脚 306
附录四 启动代码档案S3C2410A.s 313