首页
导航
博客
电子书
算法
众创
代码
随贴
关于我们
您好,欢迎来到码863代码分享网! 请
[登录]
/
[注册]
搜 索
标题:
*
140
字
TAG标签:
(用空格隔开)
30
字
恢复历史版本:
请选择分类
html
python
javascript
php
sql
c
c++
c#
java
plain
所有人可见
仅自己可见
编辑器:UEditor
编辑器:TinyMCE
编辑器:Editor.md
HTML转MD
HTML转MD2
<h2>1.1 ARM 分类</h2><h3>1.1.1 版本号分类</h3><p> 以前分类的是 ARM7,ARM9... ARM11,在 ARM11 之后,就是以 Cortex 系列分类了:</p><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>Cortex-R:应用在实时系统上的系列</p></li><li><p>Cortex-M:替代单片机的系列,M0 M3 M4 M7</p></li><li><p>Cortex-A:A8 A9 A15 A72 A53</p></li></ul><h3>1.1.2 指令集分类</h3><p> 指令集原则上是向下兼容的。</p><p> 指令集是根据核来分的,比如 ARMv7指令集、ARMv8指令集等等</p><p style="text-align:center;"><img src="https://www.jt2100.com/ueditor/php/upload/image/20231102/1698879498204032.webp" alt="1698879498204032.webp" /></p><p><br /></p><h2>1.2 ARM 商业模式及半导体公司</h2><h3>1.2.1 IP 核(知识产权)</h3><p> ARM MIPS X86 PowerPC(IBM)</p><p> ARM 出卖 IP 而不卖芯片</p><h3>1.2.2 半导体公司</h3><p> 主流的半导体公司有三星、高通、苹果、NXP(Freescale)、TI、ST、ATMEL、Ambarella、Amlogic、MTK、海思、全志、瑞芯微、展讯(基带)、炬力、联咏等等。</p><h3>1.2.3 芯片、处理器和架构的联系</h3><p> 以 S3C2440 为例子:</p><p> <br /></p><p style="text-align:center;"><img src="/ueditor/php/upload/image/20231107/1699358297844340.webp" alt="1699358297844340.webp" style="width:289px;height:303px;" title="1699358297844340.webp" width="289" height="303" border="0" vspace="0" /></p><h2>1.3 ARM 处理器状态和处理器模式</h2><p> 在不同的体系下,有一些概念有所不同。这里主要以 S3C2440 为例子。</p><h3>1.3.1 处理器状态</h3><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>处理器状态有两种:</p></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p><br /></p><ul class="list-paddingleft-2" style="list-style-type:square;"><li><p>ARM 状态:执行效率高</p></li><li><p>THUMB 状态:代码密度好</p></li></ul></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>ARMV4 中,ARM 状态为32位,THUMB 状态为 16位,但是,在 ARMV7 中,ARM状态为32位,THUMB 状态为 16/32位状态,还有一种 THUMBEE状态,适用于 JAVA 运行的状态。</p></li><li><p>处理器状态的切换指令: BX BLX</p></li><li><p>指令集:</p></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p><br /></p><ul class="list-paddingleft-2" style="list-style-type:square;"><li><p>ARM指令:32位</p></li><li><p>THUMB指令:16位</p></li><li><p>THUMB2:32/16位</p></li></ul></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p><br /></p><ul class="list-paddingleft-2" style="list-style-type:square;"><li><p>CORTEX-M 只是指令 THUMB2 指令子集</p></li></ul></li></ul><h3>1.3.2 处理器模式</h3><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>处理器模式共有 7 种:</p></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p><br /></p><ul class="list-paddingleft-2" style="list-style-type:square;"><li><p>usr:用户模式</p></li><li><p>fiq:快速中断模式</p></li><li><p>irq:普通中断模式</p></li><li><p>svc:保护/特权模式</p></li><li><p>abt:异常模式</p></li><li><p>sys:系统模式</p></li><li><p>und:未定义模式</p></li></ul></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>设计的目的:提高相应速度</p></li><li><p>注意:保护模式/特权模式,需要 MMU 和代码的支持</p></li></ul><h2>1.4 ARM 内部寄存器及 SFR</h2><h3>1.4.1 ARM 内部寄存器</h3><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>此类寄存器设计在 CPU 内部,特点是速度快。</p></li><li><p>一共 37 个寄存器,31 个通用寄存器 和 6 个状态寄存器</p></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>通用寄存器:R0-R12,R13,R14,R15,R16</p></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p><br /></p><ul class="list-paddingleft-2" style="list-style-type:square;"><li><p>R13(SP):栈指针,不同模式下栈空间是不一样的</p></li><li><p>R14(LR):链接寄存器,存放断点,硬件自动完成</p></li><li><p>R15(PC):程序指针,取指令的位置</p></li></ul></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>状态寄存器:PSR 分为 CPSR、SPSR</p></li></ul><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p><br /></p><ul class="list-paddingleft-2" style="list-style-type:square;"><li><p>条件状态:NZCV</p></li><li><p>保留位</p></li><li><p>IFT</p></li><li><p>模式位:M4-M0</p></li></ul></li></ul><p> <br /></p><p style="text-align:center;"><img src="/ueditor/php/upload/image/20231107/1699358328866369.webp" alt="2.webp" style="width:796px;" title="1699358328866369.webp" /></p><p> </p><h3>1.4.2 SFR 特殊功能寄存器</h3><p>IO 端口/寄存器,它属于外设的组成部分。</p><p>ARM 是采用与存储器统一编址的方式使用软件编程控制某一硬件,起使就是编程读写该硬件的寄存器</p><h2>1.5 ARM 异常处理和存储系统</h2><h3>1.5.1 模式与异常</h3><ul class="list-paddingleft-2" style="width:1453.5px;"><li><p>异常的类型:Reset、undefined instruction、swi、prefetch/bort、data/abort、Reserved、IRQ、FIQ</p></li><li><p>处理器的模式:每一个异常对应一种模式,但不是一一对应关系</p></li></ul><h3>1.5.2 中断向量表</h3><p> <br /></p><p style="text-align:center;"><img src="/ueditor/php/upload/image/20231107/1699358351797822.webp" alt="3.webp" style="width:525px;" title="1699358351797822.webp" /></p><h3>1.5.3 大端与小端存储</h3><p>在大端格式中,字中最高有效位 MSB(Most Significant Byte)存储在编号最低的字节中,最低有效位 LSB(Least Significant Byte)存储在编号最高的字节中。因此存储器系统的字节 0 关联到数据行的 24 到 31。</p><p><br /></p><p style="text-align:center;"><em><img src="/ueditor/php/upload/image/20231107/1699358382974631.webp" alt="5.webp" style="width:796px;" title="1699358382974631.webp" /></em></p><p><br /></p><p> </p><p>在小端格式中,字中编号最低的字节被认为是最低有效位 LSB,编号最高的字节为最高有效位 MSB。因此存储器系统的字节 0 关联到数据行的 0 到 7。</p><p><em> </em></p><p style="text-align:center;"><em><img src="/ueditor/php/upload/image/20231107/1699358431389867.webp" alt="arm处理器的指令集架构 arm处理器指令集_有效位_05" style="width:796px;height:299px;" width="796" height="299" border="0" vspace="0" title="arm处理器的指令集架构 arm处理器指令集_有效位_05" /></em></p><p><br /></p><p> </p><p><br /></p><p><br /></p><p><br /></p>
CopyRight 2002~2023 精通2100网 联系邮箱:qqtxt@163.com
版权所有:精通2100网
湘ICP备2023018646号-1
MYSQl共执行 4 个查询,用时 0.0022387504577637 秒,PHP脚本用时 0.004604 秒,占用内存 0.535 MB,Gzip 已启用