共4条
1/1 1 跳转至页
arm学习(hongwind-老站转)
hongwind 于 2002/04/15 22:17 加贴在 嵌入式系统论坛 设为精华 删除
ARM (Advanced RISC Machine ):
The ARM Instruction Set Architecture
Arm指令集结构:arm instruction set architecture
v4T Thumb 16bit
节省存储空间,35%,可以使用16bit的指令,访问32位的地址空间。
v5TE DSP
dsp 音频dsp处理应用。
v5TEJ Jazelle
java虚拟机
v6
Vector Floating Point (VFP)(矢量浮点技术)
ARM`s range of Vector Floating Point (VFP) coprocessors add full floating point operations to the ARM cores in the ARM9E and ARM10 families. Faster development and more reliable performance can be achieved by incorporating the ARM VFP into an SoC design and using technical computing tools (eg MatLab® and MATRIXx ® ) to directly model the system and derive the application code. The vector processing capability of the ARM VFP also offers increased performance for imaging applications such as scaling, 2D and 3D transforms, font generation, and digital filters.
Debug and Trace(调试跟踪)
ARM`s debug and trace tools enable system developers to quickly debug real-time software and to trace instruction execution and associated program data at full core speed. The EmbeddedICE logic is integrated into all ARM cores and the Embedded Trace Macrocells (ETMs) interface to ARM processors to monitor internal buses, and enable non-intrusive tracing of instructions and data accesses.
AMBA(高级微处理器总线体系结构)
The AMBA on-chip interconnect is an established, open specification that serves as a framework for SoC designs and IP library development. The AMBA Advanced High-performance Bus (AHB) interface is supported by all new ARM cores and provides a high-performance, fully-synchronous backplane. Multi-layer AHB represents a significant technical advance that reduces latencies and increases the bandwidth available to multi-master systems. Fully compatible with the current AHB specification, Multi-layer AHB is supported on the ARM926EJ-S and by all members of the ARM10
[align=right][color=#000066][此贴子已经被amine于2002-5-16 13:49:15编辑过][/color][/align]
关键词: 学习 hongwind- 老站转
arm study 2
hongwind 于 2002/04/15 22:19 加贴在 嵌入式系统论坛 设为精华 删除
32 位操作(区分arm5,6,7 和arm结构版本)
在版本 ARMv4,v5,v6 上,数据总线和地址总二者都是完全的 32 位宽。RISC 新的 ARM 处理器将不支持 26(arm地址总线为32 位)操作。尽管做了一些融合(ARM6、ARM7、StrongARM),但气数就要尽了。你可以增加一个 26/32 位系统的复杂性,或者只用 32 位而得到更简单、更小的处理器。
32 位体系(arm6以后的版本和之前的区别)
在 ARM 6,7。。。 中,程序计数器被扩展到完整的 32 位。结果是:
· PSR 从 PC 中分离到自己的寄存器 CPSR(当前的程序状态寄存器)中。
· 在改变处理器模式的时候,不再与 PC 一起保存 PSR;现在是每个有特权的模式都有一个额外的寄存器 - SPSR (保存的程序状态寄存器) - 用来持有前面模式的 PSR。
· 增加了使用这些新寄存器的指令。
除了允许 PC 使用完全的 32 位之外,还有进一步的变更,就是给 PSR 增加了额外的有特权的模式。这些模式用于处理未定义指令和异常终止例外:
· 未定义指令、异常终止、和超级用户不再共享同一个模式。去掉了在早期 ARM 上存在的对超级用户的那些限制。
· 在 ARM6 系列(和以后的其他兼容芯片)中通过设置片上某个控制寄存器来确定这些特征的可获得性。可以选择三个处理器配置中的一个:
o 26 位程序和数据空间,这个配置强制 ARM 在 26 位地址空间中进行操作。在这个配置中只能获得四个 26 位模式(参照处理器模式描述);不可能选择任何 32 位模式。在所有当前的 ARM6 和 7 系列上复位(reset)时被设置为这个模式。
o 26 位程序空间和 32 位数据空间。除了禁止地址例外来允许数据传送操作访问完整的 32 位地址空间之外,与 26 位程序和地址空间配置相同。
o 32 位程序和数据空间。这个配置把地址空间扩展成 32 位,并介入了对处理器模型的重大变更。在这个配置中你可以选择任何 26 位和 32 位处理器模式(参见下面的处理器模式)。
在配置成 32 位程序和数据空间的时候,ARM6 和 ARM7 系列支持十个有所重叠的处理器操作模式: (从arm7开始为32bits,arm6只是为了向上兼容)
· 用户模式: 正常的程序执行状态; user mode
或 User26 模式: 一个 26 位版本。 (Arm6以前版本为26位)
· FIQ 模式: 设计来支持一个数据传送或通道处理;fiq mode
或 FIQ26 模式: 一个 26 位版本。
· IRQ 模式: 用于通用中断处理; irq mode
或 IRQ26 模式: 一个 26 位版本。
· SVC 模式: 用于操作系统的保护模式 svc mode
或 SVC26模式: 一个 26 位模式。
· 异常终止模式(ABT 模式): 在一个数据或指令预取异常终止(abort)的时候进入的模式。 Abort mode
· 未定义模式(UND 模式): 在执行了一个未定义的指令的时候进入的模式。 Undefined
当在一个 26 位处理器模式中的时候,编程模型倒退成早期的 26 位 ARM 处理器。除了下列变动之外,它的行为与 ARM2aS 宏单元(macrocell)相同:
· 只在 ARM 被配置为 26 位程序和数据空间的时候,它才生成地址例外(address exception)。在其他配置下 OS 仍然可以通过使用外部逻辑模拟地址例外的行为,比如用一个内存管理单元在超出 64Mbyte 范围的时候生成一个异常终止,并把这个异常终止转换成给这个应用程序的一个‘地址例外陷入(trap)’。
· 保持在通用寄存器和程序状态寄存器之间传送数据的新指令可操作。在调用了包含 26 位的 ARM 二进制代码的之后,操作系统可以使用这些新指令返回到一个 32 位模式。
· exception:当在一个 32 位程序和数据空间配置下的时候,所有例外(包括未定义指令和软件中断)把处理器返回到一个 32 位模式,所以必须修改操作系统来处理它们。
· 如果处理器尝试写到在 &0 和 &1F 之间包括二者(就是例外向量)的一个位置,则硬件将禁止写操作并生成一个数据异常终止。这允许操作系统来截获对例外向量的变动并把向量重定向到一些伪装(veneer)代码上。
在所有其他方面,当在一个 26 位模式下进行操作的时候,ARM 表现的如同一个 26 位 ARM。CPSR 的相关的位将被组建(incorporated)回到 R15 中,来形成 I 和 F 位在位 27 和 26 的 PC/PSR。
在26位的情况下,cpsr相关的位是在pc/psr中,而不是单独放在两个寄存器中,pc,cpsr
在 ARM 6(和以后)的 32 位模式下可获得的寄存器有:
User26 SVC26 IRQ26 FIQ26 User SVC IRQ ABT UND FIQ
R0 ----- R0 ----- R0 ----- R0 -- -- R0 ----- R0 ----- R0 ----- R0 ----- R0 ----- R1
R1 ----- R1 ----- R1 ----- R1 -- -- R1 ----- R1 ----- R1 ----- R1 ----- R1 ----- R2
R2 ----- R2 ----- R2 ----- R2 -- -- R2 ----- R2 ----- R2 ----- R2 ----- R2 ----- R2
R3 ----- R3 ----- R3 ----- R3 -- -- R3 ----- R3 ----- R3 ----- R3 ----- R3 ----- R3
R4 ----- R4 ----- R4 ----- R4 -- -- R4 ----- R4 ----- R4 ----- R4 ----- R4 ----- R4
R5 ----- R5 ----- R5 ----- R5 -- -- R5 ----- R5 ----- R5 ----- R5 ----- R5 ----- R5
R6 ----- R6 ----- R6 ----- R6 -- -- R6 ----- R6 ----- R6 ----- R6 ----- R6 ----- R6
R7 ----- R7 ----- R7 ----- R7 -- -- R7 ----- R7 ----- R7 ----- R7 ----- R7 ----- R7
R8 ----- R8 ----- R8 R8_fiq R8 ----- R8 ----- R8 ----- R8 ----- R8 R8_fiq
R9 ----- R9 ----- R9 R9_fiq R9 ----- R9 ----- R9 ----- R9 ----- R9 R9_fiq
R10 ---- R10 ---- R10 R10_fiq R10 ---- R10 ---- R10 ---- R10 ---- R10 R10_fiq
R11 ---- R11 ---- R11 R11_fiq R11 ---- R11 ---- R11 ---- R11 ---- R11 R11_fiq
R12 ---- R12 ---- R12 R12_fiq R12 ---- R12 ---- R12 ---- R12 ---- R12 R12_fiq
R13 R13_svc R13_irq R13_fiq R13 R13_svc R13_irq R13_abt R13_und R13_fiq
R14 R14_svc R14_irq R14_fiq R14 R14_svc R14_irq R14_abt R14_und R14_fiq
--------- R15 (PC / PSR) --------- --------------------- R15 (PC) ---------------------
----------------------- CPSR -----------------------
SPSR_svc SPSR_irq SPSR_abt SPSR_und SPSR_fiq
简要的说,32 位的与 26 位的不同是:
· PC 是完全的 32 位宽,并只用做程序计数器。
· PSR 包含在它自己的寄存器 CPSR 中。在26位是psr是放在pc中,成为pc/psr.
· 每个有特权的模式都有一个专有的 SPSR 寄存器,用来保存 CPSR。
· 这里有两个新的特权模式,每个有特权的模式都有 R13 和 R14 的专有复件。
CPSR 和 SPSR 寄存器
CPSR 寄存器(和保存它的 SPSR 寄存器)中的位分配如下:
31 30 29 28 --- 7 6 - 4 3 2 1 0
N Z C V I F M4 M3 M2 M1 M0
1 0 0 0 0 User 模式
1 0 0 0 1 FIQ 模式
1 0 0 1 0 IRQ 模式
1 0 0 1 1 SVC 模式
1 0 1 1 1 ABT 模式
1 1 0 1 1 UND 模式
关于 N、Z、C、V 标志和 I、F 中断标志请参见
程序计数器构造如下:
位 31 30 29 28 27 26 25------------2 1 0
N Z C V I F 程 序 计 数 器 S1 S0
顶! ==============================================================
在论坛看了很多ARM相关资料,学了不少知识,最近想动手试试做个东西,MP4太复杂,想想还是使用
STM32做一个MP3播放器,请各位高手给点意见呀:
http://www.armjishu.com/bbs/viewtopic.php?id=1631&flag=102
欢迎大家给出评价与建议!
共4条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动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分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |