ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
ARM处理惩罚器的寄存器
ARM处理惩罚器共有37个寄存器。此中包括:
**31个通用寄存器,包括步伐计数器(PC)在内。这些寄存器都是32位寄存器。
**6个状态寄存器。这些寄存器都是32位寄存器。
ARM处理惩罚器共有7种差别的处理惩罚器模式,每一种模式中都有一组相应的寄存器组。在任意时候,可见的寄存器包括15个通用寄存器(R0-R14),一个或两个状态寄存器及步伐计数器(PC)。在全部的寄存器中,有些是各模式公用一个物理寄存器,有一些寄存器各模式拥有本身独立的物理寄存器。
****************************************************
通用寄存器
***************************************************8
通用寄存器分为以下三类:备份寄存器、未备份寄存器、步伐计数器PC
未备份寄存器
未备份寄存器包括R0-R7。对付每一个未备份寄存器来说,全部处理惩罚器模式下都是利用同一个物理寄存器。未备份寄存器没有被体系用于分外的用途,任意可采取通用寄存器的场合都可以利用未备份寄存器。
备份寄存器
对付R8-R12备份寄存器来说,每个寄存器映射两个差别的物理寄存器。体系为将备份寄存器用于任意的特别用途,但是当停止处理惩罚非常大略,仅仅利用R8-R14寄存器时,FIQ处理惩罚步伐可以不必实行生存和规复停止现场的指令,从而可以使停止处理惩罚非常敏捷。
对付R13,R14备份寄存器来说,每个寄存器映射六个差别的物理寄存器,此中的一个是体系模式和用户模式共用的;别的的五个映射于其他的五种处理惩罚器模式。采取下面的暗号来区分各个物理寄存器:
R13_<MODE>
此中MODE可以是下面几种模式之一:usr,svc,abt,und,irq,fiq
步伐计数器PC
可以作为一样平常的通用寄存器利用,但有一些指令在利用R15时有一些限定。由于ARM采取了流水线处理惩罚器机制,当精确读取了PC的值时,该值为当前指令地点值加上8个字节。也便是说,对付ARM指令集来说,PC指向当前指令的下两条指令的地点。由于ARM指令是字对齐的,PC值的第0位和第一位总为0。
必要细致的是,当利用str/stm生存R15时,生存的大概是当前指令地点值加8个字节,也大概生存的是当前指令地点值加12个字节。到底哪种方法取决于芯片的详细计划。对付用户来说,只管即便克制利用STR/STM指令来生存R15的值。
当告成的向R15写入一个数值时,步伐将跳转到该地点实行。由于ARM指令是字对齐的,写入R15的值应餍足bits[1:0]为0b00,详细请求arm个版本有所差别:
**对付arm3以及更低的版本,写入R15的地点值bits[1:0]被马虎,即写入r15的地点值将与0xFFFF FFFC做与操纵。
**对付ARM4以及更高的版本,步伐必须包管写入R15的地点值bits[1:0]为0b00,不然将孕育产生不可预知的结果。
对付Thumb指令集来说,指令是班子对齐的,处理惩罚器将马虎bit[0]。
步伐状态寄存器
CPSR(当前步伐状态寄存器)在任那边理惩罚器模式下被访问。它包括了条件标记位、停止克制位、当前处理惩罚器模式标记以及其他的一些控制和状态位。每一种处理惩罚器
模式下都有一个专用的物理状态寄存器,称为SPSR(备份步伐状态寄存器)
。当特定的非常停止产生时,这个寄存器用于存放当前步伐状态寄存器的内容。在非常停止退出时,可以用SPSR来规复CPSR。由于用户模式和体系模式不是非常
停止模式,以是他没有SPSR。当用户在用户模式或体系模式访问SPSR,将孕育产生不可预知的结果。
CPSR格局如下所示。SPSR和CPSR格局雷同。
31 30 29 28 27 26 7 6 5 4 3 2 1 0
N Z C V Q DNM(RAZ) I F T M4 M3 M2 M1 M0
***条件标记位***
N——本位设置成当前指令运算结果的bit[31]的值。当两个别现的有标记整数运算时,n=1表现运算结果为负数,n=0表现结果为正书或零。
z——z=1表现运算的结果为零;z=0表现运算的结果不为零。对付CMP指令,Z=1表现举行比较的两个数大小相称。
C——下面分四种环境讨论C的设置要领:
在加法指令中(包括比较指令CMP),当结果孕育产生了进制,则C=1,表现无标记运算产生上溢出;其他环境C=0。
在减法指令中(包括减法指令CMP),当运算中产生错位,则C=0,表现无标记运算数产生下溢出;其他环境下C=1。
对付包括移位操纵的非加碱运算指令,C中包括末了一次溢出的的位的数值
对付其他非加减运算指令,C位的值通常不受影响
V——对付加减运算指令,当操纵数和运算结果为二进制的补码表现的带标记数时,V=1表现标记为溢出;通常其他指令不影响V位。
***Q标识位***
在ARM V5的E系列处理惩罚器中,CPSR的bit[27]称为q标识位,重要用于指示加强的dsp指令是否产生了溢出。同样的spsr的bit[27]位也称为q标识位,用于在非常中
断产生时生存和规复CPSR中的Q标识位。
在ARM V5过去的版本及ARM V5的非E系列的处理惩罚器中,Q标识位没有被定义。
***CPSR中的控制位***
CPSR的低八位I、F、T、M[4:0]统称为控制位。当非常停止产生时这些位产生变革。在特权级的处理惩罚器模式下,软件可以修改这些控制位。
**停止克制位:当I=1时克制IRQ停止,当F=1时克制FIQ停止
**T控制位:T控制位用于控制指令实行的状态,即阐明本指令是ARM指令还是Thumb指令。对付ARM V4以更高版本的T系列ARM处理惩罚器,T控制位含义如下:
T=0表现实行ARM指令
T=1表现实行Thumb指令
对付ARM V5以及更高版本的非T系列处理惩罚器,T控制位的含义如下
T=0表现实行ARM指令
T=1表现逼迫下一条实行的指令孕育产生未定指令停止
***M控制位***
M控制位控制处理惩罚器模式,详细含义如下:
M[4:0] 处理惩罚器模式 可访问的寄存器
ob10000 user pc,r14~r0,CPSR
0b10001 FIQ PC,R14_FIQ-R8_FIQ,R7~R0,CPSR,SPSR_FIQ
0b10010 IRQ PC,R14_IRQ-R13_IRQ,R12~R0,CPSR,SPSR_IRQ
0B10011 SUPERVISOR PC,R14_SVC-R13_SVC,R12~R0,CPSR,SPSR_SVC
0b10111 ABORT PC,R14_ABT-R13_ABT,R12~R0,CPSR,SPSR_ABT
0b11011 UNDEFINEED PC,R14_UND-R8_UND,R12~R0,CPSR,SPSR_UND
0b11111 SYSTEM PC,R14-R0,CPSR(ARM V4以及更高版本)
***CPSR中的其他位***
这些位用于将来扩展。应用软件不要操纵这些位。
在ARM体系中通常有以下3种方法控制步伐的实行流程:
**在正常实行进程中,每实行一条ARM指令,步伐计数器(PC)的值加4个字节;每实行一条Thumb指令,步伐计数器寄存器(PC)加2个字节。整个进程是按次序实行。
**跳转指令,步伐可以跳转到特定的地点标号处实行,大概跳转到特定的子步伐处实行。此中,B指令用于实行跳转操纵;BL指令在实行跳转操纵同时,生存子程
序的返回地点;BX指令在实行跳转操纵同时,根据目标地点为可以将步伐切换到Thumb状态;BLX指令实行3个操纵,跳转到目标地点处实行,生存子步伐的返回
地点,根据目标地点为可以将步伐切换到Thumb状态。
**当非常停止产生时,体系实行完当前指令后,将跳转到相应的非常停止处理惩罚步伐处实行。当非常停止处理惩罚步伐实行完成后,步伐返回到产生停止指令的下条指
令处实行。在进入非常停止处理惩罚步伐时,要生存被停止步伐的实行现场,从非常停止处理惩罚步伐退出时,要规复被停止步伐的实行现场。
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号