天嵌 ARM开发社区

 找回密码
 注册
查看: 7424|回复: 11

《ARM原理与C程序设计》一书

[复制链接]
zhnyong 发表于 2009-4-16 14:44:32 | 显示全部楼层 |阅读模式
本帖最后由 zhnyong 于 2009-6-24 08:17 编辑

《ARM原理与C程序设计》2009年4月出版。本书的所有程序均可以在TQ2440上运行。
   同时,版主会使用TQ2440改编所有的程序,并把所有程序发布到RealView MDK讨论区。

   本版内容限于 ARM芯片级编程(uC/OS-II程序设计)。

   《ARM原理与C程序设计》简介:
   针对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.2.1  ARM7微处理器系列        4
1.2.2.2  ARM9微处理器系列        5
1.2.2.3  ARM9E微处理器系列        6
1.2.2.4  ARM10E微处理器系列        8
1.2.2.5  ARM11微处理器系列        8
1.2.2.6  Cortex微处理器系列        9
1.2.2.7  SecurCore微处理器系列        9
1.2.2.8  XScale微处理器系列        10
1.2.3  ARM微处理器应用领域        10
1.3  ARM芯片级开发环境        10
1.3.1  仿真环境建设        11
1.3.1.1  硬件平台介绍        11
1.3.1.2  H-JTAG使用方法        12
1.3.1.3  RVDS仿真环境        13
1.3.2  程序仿真实例与解释        15
1.3.2.1  程序代码编写        15
1.3.2.2  程序调试        18
1.3.2.3  程序代码解释        20
1.4  小结        20
第二章  ARM体系结构与接口电路        21
2.1  ARM微处理器工作模式        21
2.2  ARM寄存器        22
2.2.1  通用寄存器        23
2.2.2  程序状态寄存器        24
2.2.2.1  条件码标识位        25
2.2.2.2  中断状态位        25
2.2.2.3  工作模式位        25
2.2.3  PC与指令流水线        26
2.3  ARM异常        26
2.3.1  复位异常        27
2.3.2  中断请求异常        28
2.3.3  快速中断请求异常        29
2.3.4  软件中断异常        29
2.3.5  数据中止异常        29
2.3.6  预取指令异常        30
2.3.7  未定义指令异常        30
2.3.8  异常返回地址        31
2.4  S3C2410存储器配置及接口电路设计        31
2.4.1  存储格式        32
2.4.2  映射存储空间        32
2.4.2.1  区块0总线宽度        33
2.4.2.2  区块地址连接样式        34
2.4.2.3  SDRAM区块地址配置样式        35
2.4.2.4  存储器映射寄存器        36
2.4.3  NOR型FLASH接口电路设计        37
2.4.3.1  AM29LV160D特性        37
2.4.3.2  AM29LV160D接口电路        38
2.4.4  NAND型FLASH接口电路设计        38
2.4.4.1  K9F1208U0M芯片特性        38
2.4.4.2  K9F1208U0M接口电路        39
2.4.5  SDRAM接口电路设计        40
2.4.5.1  HY57V561620芯片特性        40
2.4.5.2  HY57V561620接口电路        42
2.5  S3C2410外设接口电路设计        43
2.5.1  片上外设及其映射寄存器        43
2.5.2  LED接口电路设计        45
2.5.3  LCD接口电路设计        49
2.5.4  触摸屏接口电路设计        51
2.5.5  串口接口电路设计        51
2.5.6  USB接口电路设计        52
2.5.7  SD卡接口电路设计        53
2.5.8  鼠标和键盘接口电路设计        54
2.6  本章小结        55
第三章  ARM指令集        56
3.1  ARM指令学习程序框架        56
3.2  ARM指令格式        57
3.3  ARM指令寻址方式        59
3.3.1  数据处理操作数寻址        59
3.3.2  字与无符号字节存储/装入寻址        62
3.3.3  双字与半字及有符号字节存储/装入寻址        65
3.3.4  寄存器批量存储/装入寻址        67
3.3.5  协处理器存储/装入寻址        69
3.4  ARM指令汇总        71
3.4.1  赋值指令        71
3.4.2  算术运算指令        72
3.4.3  跳转指令        78
3.4.4  比较指令        79
3.4.5  逻辑运算指令        80
3.4.6  CPSR访问指令        83
3.4.7  内存访问指令        84
3.4.8  软中断指令        91
3.4.9  协处理器指令        92
3.4.10  ARM伪指令        94
3.5  本章小结        95
第四章  ARM存储系统及其配置        96
4.1  RealView MDK仿真环境建设        96
4.1.1  开发平台建设        96
4.1.2  第一个MDK工程        97
4.1.3  硬仿真环境设置        100
4.1.4  编译配置        102
4.1.5  在线仿真        104
4.2  NAND FLASH启动配置        105
4.3  SDRAM配置        109
4.3.1  MDK启动代码配置SDRAM        109
4.3.2  自定义SDRAM配置代码        116
4.3.3  堆和栈        120
4.4  CP15协处理器        124
4.4.1  CP15协处理器寄存器汇总        124
4.4.2  寄存器c0        125
4.4.3  寄存器c13        128
4.4.4  寄存器c1        129
4.4.5  寄存器c2        130
4.4.6  寄存器c3        130
4.4.7  寄存器c5        130
4.4.8  寄存器c6        130
4.4.9  寄存器c8        130
4.4.10  寄存器c10        131
4.5  MMU配置        131
4.5.1  MMU工作原理        131
4.5.2  地址转译        133
4.6  本章小结        136
第五章  汇编语言程序设计及系统初始化        137
5.1  ARM汇编语言程序框架        137
5.1.1  通用输入输出C口配置        138
5.1.2  工程ex5_1注解及运行情况        145
5.1.3  汇编语言语法        149
5.2  浮点数据处理        150
5.2.1  计算基础        151
5.2.2  数值定标        151
5.2.3  程序代码及结果分析        152
5.3  系统初始化        157
5.3.1  启动代码S3C2410A.s        158
5.3.1.1  时钟管理器        158
5.3.1.2  看门狗定时器        163
5.3.1.3  异常向量表        166
5.3.2  初始化代码zyboot.s        171
5.4  中断服务程序        182
5.4.1  硬件基础        182
5.4.2  EINT2外部中断及其程序设计        183
5.4.3  SWI中断及其注意事项        189
5.5  本章小结        190
第六章  C语言程序设计        191
6.1  C程序框架实例        191
6.1.1  跑马灯工程设计        191
6.1.2  跑马灯程序解释        196
6.1.3  C程序框架        197
6.2  SDRAM重定位技术        200
6.3  C语言语法        202
6.3.1  数据类型        202
6.3.2  常用算符        204
6.3.2.1  赋值运算符        204
6.3.2.2  数学运算符        204
6.3.2.3  关系运算符        204
6.3.2.4  逻辑运算符        205
6.3.2.5  位运算符        205
6.3.2.6  sizeof运算符        205
6.3.2.7  逗号运算符        206
6.3.2.8  三元运算符        206
6.3.2.9  数组下标运算符        206
6.3.2.10  结构/联合成员运算符        206
6.3.2.11  结构/联合成员指针运算符        207
6.3.2.12  地址运算符        207
6.3.2.13  强制类型转换运算符        207
6.3.3  程序控制语句        208
6.3.3.1  顺序结构        208
6.3.3.2  分支结构        208
6.3.3.3  循环结构        210
6.3.4  C语言函数        212
6.3.5  演示实例一        213
6.3.6  演示实例二        215
6.4  混合语言程序设计        219
6.4.1  C函数嵌套汇编语句        220
6.4.2  C函数调用汇编子程序        222
6.4.2.1  ATPCS调用标准        222
6.4.2.2  程序实例一:指针参数传递        223
6.4.2.3  程序实例二:整型参数传递        227
6.4.2.4  程序实例三:浮点数参数传递        230
6.5  中断服务程序设计        233
6.5.1  异常入口配置        233
6.5.2  SWI中断        235
6.5.2.1  分支跳转法实现SWI中断        235
6.5.2.2  装入PC值法实现SWI中断        238
6.5.3  看门狗中断        241
6.6  本章小结        244
第七章  ARM接口程序设计        245
7.1  LED显示控制        245
7.1.1  看门狗定时器秒表        245
7.1.2  定时器1秒表        247
7.2  K9F1208访问技术        251
7.2.1  K9F1208U0C        251
7.2.2  K9F1208读设计        253
7.2.3  K9F1208 Boot设计        258
7.2.3.1  HEX文件格式        259
7.2.3.2  生成FLASH数据头文件        262
7.2.3.3  K9F1208写操作        270
7.3  串口通信        276
7.3.1  串口配置        276
7.3.2  串口收发程序        277
7.3.3  串口中断编程        279
7.4  本章小结        284
附录一  S3C2410专用寄存器地址        285
附录二  S3C2410专用寄存器描述        296
附2.1  存储器配置寄存器        296
附2.2  NAND FLASH寄存器        301
附录三  S3C2410芯片管脚        303
附录四  启动代码文件S3C2410A.s        312
freewing 发表于 2009-4-18 18:12:10 | 显示全部楼层
期待楼主的好作品。。。。。。。。
yueyinghailang 发表于 2009-5-30 01:01:20 | 显示全部楼层
真的吗?所有程序都兼容TQ2440的开发板?要是这样真的好期待!
yueyinghailang 发表于 2009-5-30 01:12:26 | 显示全部楼层
我想问一下,ARM原理与C程序设计》该书的所以程序的代码是不是不用修改直接烧到TQ2440开发板就可运行了呢?期待楼主的回答,谢谢
 楼主| zhnyong 发表于 2009-6-1 15:28:22 | 显示全部楼层
不完全可以,但很容易实现。
我最近在针对TQ2440在做一整套程序,包括修改书上的程序部分。 如果楼上做得快,请拿出来共享。
谢谢!
ray870930 发表于 2009-6-3 16:17:55 | 显示全部楼层
期待中啊,望楼主发布新消息
embedsky Team 发表于 2009-6-4 14:31:00 | 显示全部楼层
很好,
希望这本书能早日和大家见面,
gavin_li 发表于 2009-6-5 22:10:28 | 显示全部楼层
还在写稿中啊。。。。期待
 楼主| zhnyong 发表于 2009-6-24 08:15:56 | 显示全部楼层
已经出版了。
gavin_li 发表于 2009-6-24 10:12:58 | 显示全部楼层
昏,我都买阿南的书了。不过他的例子在TQ2440上跑不了。他的书事针对2410的。
yekaifeng 发表于 2009-9-13 23:45:01 | 显示全部楼层
想看看  学学
北国孤月 发表于 2010-12-30 21:29:33 | 显示全部楼层
7# embedsky Team


你是西电的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-7 08:17 , Processed in 1.062506 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表