源自: METAL MAX, CUIT **起始日期:01/25/08 **当前版本:Version0.08.0125 ** **备注: 1.这是2008春节回家期间阅读《ARM体系结构与编程》这部作品的时候记载下来的。 小小的东西凝聚了我不少的心血(汗...书又不是我写的,我只是负责抄写了一遍, 有些内容给省略了...),让我体会到要真真正正做个像样的东西很不容易,但是, 相信点点滴滴的积累,正所谓是:不积跬步,无以至千里;不积小流,无以成江海!
2.由于刚接触ARM处理器,并不熟悉其中的一些细节问题,所有在做笔记的时候对有 西理解不是很透彻,甚至会又错误。有些地方加入了自己的一些东西(主要是一些 的理解和自己做的图表)。
3.由于本人水平太菜的缘故,排版不工整,存在错别字等问题,见谅!更希望有心人 忙修改和完善,众志成城!
4.本文档您可以任意的修改(严禁恶搞!^_^)和传播,引用文档的部分和全部内容请 本文件的文件头,如果您是有心人修改或完善了其中的部分内容,请一定保留您的 改记录(修改日期、版本、修改人以及修改点等),并将其归入文件头中。
5.编辑时使用了三号新宋体字体以及演示版的Editplus2,TABLE缩进为4,制表符代 空格。
6.非常喜欢我的事业,也很希望能和大家一起学习很进步,当然交流是前提! Email :
liyangbbs@126.com QQ: 249456711 日志: 01/25/08 - 02/10/08 Version0.08.0125 METL MAX *************************
2008-1-25
一、前言: 嵌入式系统: 是指以应用为中心,以计算机技术为基础,软件和硬件可以裁剪, 适应应用系统对功能的、可靠性、体积和功耗严格要求的专用计算 机系统。
ARM: ACRON RISC COMPUTER <---> ADVANCED RISC COMPUTER
ARM技术的发展历程:第一片ARM处理器是在1983年10月到1985年4月位于英国剑桥的 ACRON COMPUTER公司开发的。于1985年4月26日在ACRON公司进 行了首批ARM样片测试并成功运行了测试程序。 1990年11月ARM公司在英国剑桥的一个谷仓里成立初只有12人。
第一章、ARM体系的结构和特征。
CHAP1.1 AMR芯片具有RISC体系的一般特点,如: 1.具有大量的寄存器。 2.绝大部分的操作就在寄存器中进行,通过LOAD,STORE的体系结构在内存和寄存 器之间传递数据。 3.寻找方式简单。
我的读书笔记——ARM体系结构与编程.txt 2008-2-19 20:54
页 1 共 72
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
4.采用固定长度的指令格式。
AMR芯片具有的一些特别的技术: 1.在同一条数据处理指令中包含 算术逻辑处理单元 和 移位处理。 2.使用地址自动增加(减少)来优化程序中循环处理。 3.LOAD/STORE指令可以批量传输数据,从而提高数据传输的效率。 4.所有指令都可以根据前面指令的执行结果,决定是否执行,以提高指令的执行 效率。
CHAP1.2 AMR体系结构的版本和命名方法。 迄今为止,ARM体系结构共定义了6个版本,版本号分别为1-6。
CHAP1.2.1 ARM体系的结构版本: 1.版本1 : V1体系 *处理乘法指令以外的基本数据处理指令。 *基于字节、字和多字的LOAD/STORE指令。 *包括子程序BL在内的跳转指令。 *共操作系统使用的软件中断指令:SWI。 *本版本总地址空间是26位,目前已经不在使用。(2^26 = 64MB) 2.版本2 : V2体系 *乘法指令和乘加指令。 *支持协处理器的指令。 *对于FIQ模式,提供额外的两个备份寄存器。 *SWP指令及SWPB指令。 *本版本总地址空间是26位,目前已经不在使用。 3.版本3 : V3体系 *地址扩展到32位,除去3G版本以外的其他版本是向前兼容的, 支持26位地址空间。 *程序状态寄存器从原来的R15移动到新的专用寄存器: Current Program Status Register *增加了SPSR用于异常中断程序时,保存被中断程序的状态。 Saved Program Status Register *增加了两种处理器模式,是操作系统代码可以方便地使用数据访问 中止异常、指令预取异常和未定义指令异常。 *增加了MSR,MRS。用于访问CPSR,SPSR寄存器。 *修改了原来版本中的从异常返回的指令。 4.版本4 : V4体系 *半字的读取和写入指令。 *读取(LOAD)带符号的字节和半字数据的指令。 *增加了T变种,可以使处理器切换到Thumb状态。 *增加了处理器的特权模式。在该模式下使用的是用户模式下的寄存器。 *版本4中明确定义了哪些指令会引起未定义指令异常。版本4不再强制 要求于以前的26位地址空间兼容。 5.版本5 : V5体系 *提高了T变种中ARM/THUMB混合使用的效率。 *对T变种的指令和非T变种的指令使用相同的代码生成技术。 *增加了前导零计数(COUNT LEADING ZEROS)指令,该指令可以使整数除法 和中断优先级排队操作的更为有效。 *增加了软件断点指令。 *为协处理器提供了更多的可选择的指令。 *更加严格的定义了乘法指令堆条件标志位的影响。 6.版本6 : V6体系 *2001年发布,其主要特点是增加了SIMD功能扩展。它适合永电池供电 的高性能便携式设备。
CHAP1.2.2 ARM体系的变种: 1.T(THUMB)。 2.M(长乘法指令)。 3.E(增强型DSP指令)。
我的读书笔记——ARM体系结构与编程.txt 2008-2-19 20:54
页 2 共 72
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
4.J(JAVA加速器JAZELLE)。 5.SIMD(ARM多媒体扩展)。
CHAP1.2.3 ARM/THUMB体系版本的命名格式 表示AMR/THUMB体系版本的字符串是由下面几个部分组成的:
ARM v5 T exP ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┖要排除的功能 ┃ ┃ ┖变种名称 ┃ ┖版本号 ┖ARM字符串
1.ARM字符串。 2.ARM版本号。 3.X表示排除某种功能。
2008-1-26 CHAP1.3 ARM处理器系列 1.ARM7: ARM7TDMI,ARM7TDMI-S,ARM7EJ-S,ARM720T-4 AMR7 T D M I - S ┃ ┃┃┃┃ ┃ ┃ ┃┃┃┃ ┖可综合(SYNTHESIZABLE)版本软核 ┃ ┃┃┃┖EmbededICE硬件调试仿真功能 ┃ ┃┃┖64位乘法指 ┃ ┃┖片上调试 ┃ ┖THUMB指令 ┖AMR7
2.ARM9: ARM9系列处理器使用了ARM9TDMI内核,其中包含了16位的THUMB指令集。
3.ARM9E: ARM9E系列处理器使用单一的处理器内核提供了微控制器、DSP、JAVA应用 系统的解决方案,从而极大的减小了芯片的大小及复杂程度,降低了功耗 缩短了产品面世的时间。
4.ARM10E: ARM10E系列处理器有高性能和低功耗的特点。其采用了新的节能模式,提 供了64位的读取和写入体系,包含向量操作的满足IEEE754的浮点运算协处 理器,系统集成更加方便,拥有完整的硬件和软件可开发工具。 包含:ARM1020E,ARM1022E,ARM1026EJ-S
5.SECURCORE: 提供了基于高性能的32位RISC技术的安全解决方案。 包含:SECURCORE SC100, SECURCORE SC110, SECURCORE SC200, SECURCORE SC210。
CHAP1.4 ARM处理器模式 7种运行模式: 1.USR(USER). 2.FIQ(FAST INTERRUPT RQUEST) 3.IRQ(INTERRUPUT RQUEST) 4.SVE(SUPERVISOR) 5.ABT(ABORT) 6.UND(UNDEFINED) 7.SYS(SYSTEM)
我的读书笔记——ARM体系结构与编程.txt 2008-2-19 20:54
页 3 共 72
格式好乱。
说实话,俺用STM32几年了,现在也不清除ARM的“体系结构”。
单纯从使用角度来说,没必要研究这个。
一周热门 更多>