[推荐]《ARM体系结构与编程》
ARM SoC 体系结构
第1章处理器设计导论
1.1处理器体系结构和组织1
1.2硬件设计中的抽象3
1.3MU0--一个简单的处理器6
1.4指令集的设计11
1.5处理器设计中的权衡16
1.6精简指令集计算机20
1.7低功耗设计23
1.8例题与练习26
第2章ARM体系结构
2.1Acorn RISC机器29
2.2体系结构的继承30
2.3ARM编程模型32
2.4ARM开发工具35
2.5例题与练习39
第3章ARM汇编语言编程
3.1数据处理指令40
3.2数据传送指令45
3.3控制流指令51
3.4编写简单的汇编语言程序56
3.5例题与练习59
第4章ARM的组织和实现
4.13级流水线ARM的组织62
4.25级流水线ARM的组织65
4.3ARM指令执行68
4.4ARM的实现71
4.5ARM协处理器接口83
4.6例题与练习85
第5章ARM指令集
5.1引言87
5.2异常89
5.3条件执行92
5.4转移及转移链接(B,BL)指令94
5.5转移交换和转移链接交换(BX,BLX)指令96
5.6软件中断(SWI)指令98
5.7数据处理指令99
5.8乘法指令103
5.9前导0计数(CLZ--仅用于v5T体系结构)105
5.10单字和无符号字节的数据传送指令105
5.11半字和有符号字节的数据传送指令108
5.12多寄存器传送指令110
5.13存储器和寄存器交换指令(SWP)111
5.14状态寄存器到通用寄存器的传送指令112
5.15通用寄存器到状态寄存器的传送指令113
5.16协处理器指令115
5.17协处理器的数据操作116
5.18协处理器的数据传送117
5.19协处理器的寄存器传送118
5.20断点指令(BKPT--仅用于v5T体系结构)120
5.21未使用的指令空间120
5.22存储器故障122
5.23ARM体系结构的各种版本126
5.24例题与练习128
第6章体系结构对高级语言的支持
6.1软件设计中的抽象129
6.2数据类型130
6.3浮点数据类型135
6.4ARM浮点体系结构139
6.5表达式143
6.6条件语句145
6.7循环148
6.8函数与过程150
6.9使用存储器154
6.10运行环境158
6.11例题与练习159
第7章Thumb指令集
7.1CPSR中的Thumb指示位161
7.2Thumb编程模型162
7.3Thumb转移指令164
7.4Thumb软中断指令166
7.5Thumb数据处理指令167
7.6Thumb单寄存器数据传送指令169
7.7Thumb多寄存器数据传送指令171
7.8Thumb断点指令172
7.9Thumb的实现173
7.10Thumb的应用174
7.11例题与练习175
第8章体系结构对系统开发的支持
8.1ARM存储器接口178
8.2AMBA总线185
8.3ARM参考外围规范189
8.4建立硬件系统原型的工具191
8.5ARM仿真器ARMulator192
8.6JTAG边界扫描测试结构193
8.7ARM调试结构198
8.8嵌入式跟踪202
8.9对信号处理的支持204
8.10例题与练习209
第9章ARM处理器核
9.1ARM7TDMI210
9.2ARM8217
9.3ARM9TDMI220
9.4ARM10TDMI223
9.5讨论226
9.6例题与练习227
第10章存储器层次
10.1存储器容量及速度228
10.2片上存储器229
10.3Cache230
10.4Cache设计示例235
10.5存储器管理240
10.6例题与练习243
第11章体系结构对操作系统的支持
11.1操作系统简介245
11.2ARM系统控制协处理器248
11.3保护单元寄存器CP15249
11.4ARM保护单元251
11.5CP15 MMU寄存器252
11.6ARM MMU结构255
11.7同步260
11.8上下文切换261
11.9输入/输出262
11.10例题与练习266
第12章ARM CPU核
12.1ARM710T/720T/740T267
12.2ARM810272
12.3StrongARM SA110275
12.4ARM920T和ARM940T282
12.5ARM946ES和ARM966ES285
12.6ARM1020E286
12.7讨论289
12.8例题与练习291
第13章嵌入式ARM的应用
13.1VLSI Ruby II先进通信处理器292
13.2VLSI ISDN用户处理器294
13.3OneCTM VWS22100 GSM芯片296
13.4爱立信VLSI蓝牙基带控制器300
13.5ARM7500和ARM7500FE303
13.6ARM7100306
13.7SA1100310
13.8例题与练习313
第14章AMULET异步ARM处理器
14.1自定时设计315
14.2AMULET1318
14.3AMULET2321
14.4AMULET2e323
14.5AMULET3326
14.6DRACO电信控制器329
14.7自定时系统的未来334
14.8例题与练习335
附录计算机逻辑337
术语342
参考文献347
索引349
ARM 体系结构与编程
第1章 ARM概述及其基本编程模型
1.1 ARM技术的应用领域及其特点
1.2 ARM体系结构的版本及命名方法
1.2.1 ARM体系结构的版本
1.2.2 ARM体系的变种
1.2.3 ARM/Thumb体系版本的命名格式
1.3 ARM处理器系列
1.3.1 ARM7系列
1.3.2 ARM9系列
1.3.3 ARM9E系列
1.3.4 ARM1OE系列
1.3.5 SecurCore系列
1.4 ARM处理器模式
1.5 ARM寄存器介绍
1.5.1 通用寄存器
1.5.3 程序状态寄存器
1.6 ARM体系的异常中断
1.6.1 ARM中异常中断种类
1.6.2 ARM处理器对异常中断的响应过程
1.6.3 从异常中断处理程序中返回
1.7 ARM体系中存储系统
1.7.1 ARM体系中的存储空间
1.7.2 ARM存储器格式
1.7.3 非对齐的存储访问操作
1.7.4 指令预取和自修改代码
第2章 ARM指令分类及其寻址方式
2.1 ARM指令集概要介绍
2.1.1 ARM指令的分类
2.1.2 ARM指令的一般编码格式
2.1.3 ARM指令的条件码域
2.2 ARM指令寻址方式
2.2.1 数据处理指令的操作数的寻址方式
2.2.2 字及无符号字节的Load/Store指令的寻址方式
2.2.3 杂类Load/Store指令的寻址方式
2.2.4 批量Load/Store指令的寻址方式
2.2.5 协处理器Load/Store指令的寻址方式
第3章 ARM指令集介绍
3.1 ARM指令集
3.1.1 跳转指令
3.1.2 数据处理指令
3.1.3 乘法指令
3.1.4 杂类的算术指令
3.1.5 状态寄存器访问指令
3.1.6 Load/Store内存访问指令
3.1.7 批量Load/Store内存访问指令
3.1.8 信号量操作指令
3.1.9 异常中断产生指令
3.1.10 ARM协处理器指令
3.2 一些基本的ARM指令功能段
3.2.1 算术逻辑运算指令的应用
3.2.2 跳转指令的应用
3.2.3 Loacl/Store指令的应用
3.2.4 批量Load/Store指令的应用
3.2.5 信号量指令的应用
3.2.6 与系统相关的一些指令代码段
3.3 Thumb指令介绍
第4章 ARM汇编语言程序设计
4.1 伪操作
4.1.1 符号定义伪操作
4.1.2 数据定义伪操作
4.1.3 汇编控制伪操作
4.1.4 栈中数据帧描述伪操作
4.1.5 信息报告伪操作
4.1.6 其他的伪操作
4.2 ARM汇编语言伪指令
4.3 ARM汇编语言语句格式
4.3.1 ARM汇编语言中的符号
4.3.2 ARM汇编语言中的表达式
4.4 ARM汇编语言程序格式.
4.4.1 汇编语言程序格式
4.4.2 汇编语言子程序调用
4.5 ARM汇编编译器的使用
4.6 汇编程序设计举例
4.6.1 ARM中伪操作使用实例
4.6.2 ARM中汇编程序实例
第5章 ARM存储系统
5.1 ARM存储系统概述
5.2 ARM中用于存储管理的系统控制协处理器CP15
5.2.1 访问CP15寄存器的指令
5.2.2 CP15中的寄存器
5.3 存储器管理单元MMU
5.3.1 存储器管理单元MMU概述
5.3.2 禁止/使能MMU
5.3.3 MMU中地址变换过程
5.3.4 MMU中存储访问权限控制
5.3.5 MMU中的域
5.3.6 关于快表的操作
5.3.7 ARM中的存储访问失效
5.4 高速缓冲存储器和写缓冲区
5.4.1 基本概念
5.4.2 cache的工作原理和地址映像方法
5.4.3 cache的分类
5.4.4 cache的替换算法
5.4.5 缓冲技术的使用注意事项
5.4.6 存储系统的一致性问题
5.4.7 cache内容锁定
5.4.8 与cache和写缓冲区相关的编程接口
5.5 快速上下文切换技术
5.5.1 快速上下文切换技术原理
5.5.2 快速上下文切换技术编程接口
5.6 与存储系统相关的程序设计指南
5.6.1 地址空间
5.6.2 存储器格式
5.6.3 非对齐的存储访问操作
5.6.4 指令预取和自修改代码
5.6.5 IMB
5.6.6 存储器映射的I/O空间
5.7 AIOA存储系统的实例
5.7.1 L7205的存储系统概述
5.7.2 L7205中的SDRAM
5.7.3 L7205中的 MMU
第6章 ATPCS介绍
6.1 ATPCS概述
6.2 基本ATPCS
6.2.1 寄存器的使用规则
6.2.2 数据栈使用规则
6.2.3 参数传递规则
6.3 几种特定的ATPCS
6.3.1 支持数据栈限制检查的ATPCS
6.3.2 支持只读段位置无关(ROPI)的ATPCS
6.3.3 支持可读写段位置无关(RWPI)的ATPCS
6.3.4 支持ARM程序和Thumb程序混合使用的ATPCS
6.3.5 处理浮点运算的ATPCS
第7章 ARM程序和Thumb程序混合使用
7.1 概述
7.2 在汇编语言程序中通过用户代码支持interwork
7.2.1 可以实现程序状态切换的指令
7.2.2 与程序状态切换相关的伪操作
7.2.3 进行状态切换的汇编程序实例
7.3 在C/C++程序中实现interwork
7.4 在汇编语言程序中通过连接器支持interwork
7.4.1 利用veneers实现汇编程序间的程序状态切换
7.4.2 利用veneers实现汇编程序与C/C++程序间的程序状态切换
第8章 C\C++以及汇编语言的混合编程
8.1 内嵌汇编器的使用
8.1.1 内嵌的汇编指令用法
8.1.2 内嵌的汇编器和armasm的区别
8.1.3 在C\C++程序中使用内嵌的汇编指令
8.1.4 内嵌汇编指令的应用举例
8.2 从汇编程序中访问C程序变量
8.3 汇编程序、C程序以及C++程序的相互调用
8.3.1 在C++程序中使用C程序头文件
8.3.2 汇编程序、C程序以及C++程序的相互调用举例
第9章 异常中断处理
9.1 ARM中异常中断处理概述
9.1.1 ARM体系中异常中断种类
9.1.2 异常中断向量表及异常中断优先级
9.1.3 异常中断使用的寄存器
9.2 进入和退出异常中断的过程
9.2.1 ARM处理器对异常中断的响应过程
9.2.2 从异常中断处理程序中返回
9.3 在应用程序中安装异常中断处理程序
9.3.1 在系统复位时安装异常中断处理程序
9.3.2 在C程序中安装异常中断处理程序
9.4 SWI异常中断处理程序
9.4.1 SWI异常中断处理程序的实现
9.4.2 SWI异常中断调用
9.5 FIQ和IRQ异常中断处理程序
9.5.1 IRQ/FIQ异常中断处理程序
9.5.2 IRQ异常中断处理程序举例
9.6 复位异常中断处理程序
9.7 未定义指令异常中断
9.8 指令预取中止异常中断处理程序
9.9 数据访问中止异常中断处理程序
第10章 ARM C/0++编译器
10.1 ARM C/C++编译器概述
10.1.1 ARM C/C++编译器及语言库介绍
10.1.2 ARM编译器中与搜索路径相关的一些基本概念
10.2 ARM编译器命令行格式
10.2.1 过程调用标准
10.2.2 设置源程序语言类型
10.2.3 指定搜索路径
10.2.4 设置预处理选项
10.2.5 设置输出文件类型
10.2.6 指定目标处理器和ARM体系版本
10.2.7 生成调试信息
10.2.8 代码生成的控制
10.2.9 控制警告信息的产生
10.2.10 编译时进行的一些额外的检查
10.2.11 控制错误信息
10.3 ARM编译器中的pragmas
10.4 ARM编译器特定的关键词
10.4.1 用于声明函数的关键词
10.4.2 用于声明交量的关键词
10.4.3 用于限定数据类型的关键词
10.5 ARM编译器支持的基本数据类型
10.6 ARM编译器中预定义宏
10.7 ARM中C/C++库
10.7.1 ARM中C/C++运行时库概述
10.7.2 建立一个包含C/C++运行时库的C/C++应用程序
10.7.3 建立不包含C运行时库的应用程序
10.7.4 裁减C/C++运行时库以适应特定的目标运行环境
第11章 ARM连接器
11.1 ARM映像文件
11.1.1 ARM映像文件的组成
11.1.2 ARM映像文件的入口点
11.1.3 输入段的排序规则
11.2 ARM连接器介绍
11.3 ARM连接器生成的符号
11.3.1 连接器生成的与域相关的符号
11.3.2 连接器生成的与输出段相关的符号
11.3.3 连接器生成的与输入段相关的符号
11.4 连接器的优化功能
11.5 运行时库的使用
11.5.1 C/C++运行时库与目标文件
11.5.2 查找需要的C/C++运行时库
11.5.3 选择合适种类的C/C++运行时库
11.5.4 扫描C/C++运行时库
11.6 从一个映像文件中使用另一个映像文件中的符号
11.6.1 symdefs文件
11.6.2 建立symdefs文件
11.6.3 symdefs文件的使用
11.7 隐藏或者重命名全局符号
11.7.1 steering文件的格式
11.7.2 steering文件中的命令
11.8 ARM连接器命令行选项
11.9 使用scatter文件定义映像文件的地址映射
11.9.1 scatter文件概述
11.9.2 satter文件中各部分介绍
11.9.3 scatter文件使用举例
第12章 嵌入式应用程序示例
12.1 嵌入式应用程序设计的基本知识
12.1.1 嵌入式应用系统中的存储映射
12.1.2 系统初始化
12.2 使用semihosting的 C语言程序示例
12.2.1 源程序分析
12.2.2 生成映像文件
12.3 一个嵌入式应用系统示例
12.3.1 源程序分析
12.3.2 生成映像文件
12.3.3 本例中地址映射模式
12.4 进行ROM/RAM地址重映射的嵌入式应用系统
12.4.1 地址映射模式
12.4.2 源程序分析
12.4.3 生成映像文件
12.5 一个嵌入式操作系统示例
第13章 使用CodeWarrior
13.1 CodeWarrior for ADS概述
13.2 简单工程项目的使用
13.2.1 工程项目窗口
13.2.2 简单工程项目的使用
13.3 配置生成目标
13.3.1 Debug Settings对话框介绍
13.3.2 设置牛成目标的基本选项
13.3.3 汇编器选项设置
13.3.4 编译器的选项设置
13.3.5 连接器的选项设置
13.3.6 fromELF工具的选项设置
13.4 复杂工程项目的使用
13.4.1 建立一个新的生成目标
13.4.2 将一个生成目标更名
13.4.3 建立生成目标之间的依赖关系
13.4.4 子工程项目的使用
13.5 工程项目模板
13.5.1 ADS中工程项目模板的使用
13.5.2 建立用户工程项目模板
13.6 编译和连接工程项目
13.6.1 编译文件
13.6.2 生成工程项目
第14章 ARM体系中的调试方法
14.1 ARM体系中调试系统概述
14.2 基于Angel的调试系统
14.2.1 基于Angel的调试系统的概述
14.2.2 使用Angel开发应用程序
14.2.3 Angel执行的操作
14.2.4 将Angel移植到特定的目标系统
14.3 基于JTAG的调试系统
14.3.1 基于JTAG的调试系统的特点
14.3.2 基于JTAG的调试系统结构
14.3.3 目标系统中的调试功能扩展部件
14.3.4 基于JTAG的调试过程
14.4 ADW使用介绍
14.4.1 ADW概述
14.4.2 ADW中的窗口
14.4.3 ADW使用介绍
没有人说翻译就不好,问题是怎么翻译,ARM SoC 体系结构这本书是翻译国外的书籍,其作者是 Steve Furber,翻译效果你们自己去看看这本书就清楚了。估计翻译者都还没有搞清楚ARM,不过北航的某些书也就那水平,没办法。
说这两本书侧重点不一样,只是个借口而已,一本讲的是体系结构,一本讲的是体系结构和编程,有什么理由说侧重点不一样,就算侧重点不一样,也不应该翻译成这样。
[align=right][color=#000066][此贴子已经被作者于2003-7-30 20:18:44编辑过][/color][/align]
说了一大堆,不知道你在说什么!
[quote][b]以下是引用[i]deepofee在2003-7-30 23:24:00[/i]的发言:[/b]
要说翻译烂不是个别出版社的问题吧,说白点,为了物质利益哪个出版社会保证不出烂书?两三年前DSP方面的书比较少,大家说说不是烂书的有几本?
自己买之前当然应该仔细比较甄别,只看书名甚至只看到其中几个字就抱回家只能说对自己不负责,另外也为不负责的出版社做了贡献。至于说到侧重点先转载一下两本书的简介(zz from china-pub):
ARM SoC体系结构: (BTW,这本书英文第2版已出)
原书名: ARM System-on-Chip Architecture,second edition
原出版社 Pearson Education
作者: (英)Steve Furber
译者: 田泽 于敦山 盛世敏
介绍了一般微处理器核的设计原理、基于微处理器核的SoC设计的基本概念和方法,通过对ARM系列处理器核和CPU核的详尽描述,来说明微处理器及外围接口的设计原理和方法。同时也综述了ARM系列处理器核和最新ARM核的研发成果,以及ARM和Thumb编程模型,对SoC设计中涉及到的存储器层次、Cache、存储器管理、片上总线、片上调试和产品测试等主要问题进行了论述。在此基础上给出了几个基于ARM核的SoC嵌入式应用的实例。最后对基于异步设计的ARM核AMULET及异步SoC子系统AMULET3H的研究进行了介绍。 本书的特点是将基于ARM微处理器核的SoC设计和实际嵌入式系统的应用集成于一体,对于基于ARM核的SoC设计和嵌入式系统开发者来说是一本很好的参考手册。可用作计算机科学技术与应用、电气工程、电子科学与技术专业本科生及硕士研究生的教材。也可作为从事集成电路设计的工程技术人员、基于ARM的嵌入式系统应用开发技术人员的参考书。
ARM体系结构与编程
作者: 杜春雷
ARM处理器是一种16/32位的高性能、低成本、低功耗的嵌入式RISC微处理器,由ARM公司设计,然后授权给各半导体厂商生产,它目前已经成为应用最为广泛的嵌入式处理器。 本书分14章对ARM处理器的体系结构、指令系统和开发工具作了比较全面的介绍。其中包括ARM体系介绍、ARM程序设计模型、ARM汇编语言程序设计、ARM C/C++语言程序设计、ARM连接器的使用、ARM集成开发环境CodeWarrior IDE的介绍及高性能的调试工具ADW的使用。并在此基础之上介绍一些典型的基于ARM体系的嵌入式应用系统设计时的基本技术。通过阅读本书可以使读者掌握开发基于ARM的应用系统的各方面的知识。 本书既可作为学习ARM技术的培训材料,也可作为嵌入式系统开发人员的参考手册。
至于说原作者抄了architecture看看这个先:
Steve Furber has a long association with the ARM, having helped create the first ARM chips during the 1980s. Now an academic, but still actively involved in ARM development, he presents an authoritative perspective on the many complex factors that influence the design of a modern system-on-chip and the microprocessor core that is at its heart.
[align=right][color=#000066][此贴子已经被作者于2003-7-30 23:53:46编辑过][/color][/align]
[/quote]
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |