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存储体系的体系布局适应差别的嵌入式应用体系的必要差别很大。最大略的存储体系利用平办事的地点映射机制,就像一些大略的弹片机体系中一样,地点空间的分派方法是牢固的,体系各部分都利用物理地点。而一些巨大体系大概包括下面的一种或几种技能,从而提供更为强大的存储体系。
**体系中大概包括多种范例的存储器,如FLASH,ROM,RAM,EEPROM等,差别范例的存储器的速率和宽度等各不雷同。
**通过利用CACHE及WRITE BUFFER技能缩小处理惩罚器和存储体系速率差别,从而进步体系的团体性能。
**内存办理部件通过内存映射技能实现假造空间到物理空间的映射。在体系加电时,将ROM/FLASH影射为地点0,如许可以举行一些初始化处理惩罚;当这些初始化完成后将RAM地点影射为0,并把体系步伐加载到RAM中运行,如许很好地办理了嵌入式体系的必要。
**引入存储掩护机制,加强体系的寂静性。
**引入一些机制包管I/O操纵应设成内存操纵后,种种I/O操纵可以或许得到精确的结果。
**与存储体系相干的步伐计划指南**
本节从外部来看ARM存储体系,及ARM存储体系提供的对外接口。本节先容用户通过这些接口来访问ARM存储体系时必要服从的规矩。
1.地点空间
ARM体系利用单一的寂静板地点空间。该地点空间大小为2^32个8位字节,这些字节的单位地点是一个无标记的32位数值,其取值范畴为0~2^32-1。ARM地点空间也可以看作是2^30个32位的字单位。这些字单位的地点可以被4整除,也便是说该地点低两位为0b00。地点为A的字数据包括地点为A、A+1、A+3、A+3 4个字节单位的内容。
各存储单位的地点作为32为无标记数,可以举行老例的整数运算。这些运算的结果举行2^32取模。
步伐正常实行时,每实行一条ARM指令,当前指令计数器加4个字节;每实行一条Thumb指令,当前指令计数器加2个字节。但是,本地点上产生溢出时,实行结果将是不可预知的。
2.存储器格局
在ARM中,要是地点A是字对齐的,有下面几种:
**地点为A的字单位包括字节单位A,A+1,A+2,A+3。
**地点为A的班子单位包括字节单位A,A+1。
**地点为A+2的半字单位包括字节单位A+2,A=3.
**地点为A的字单位包括半字节单位A,A+2。
在big-endian格局中,对付地点为a的字单位此中字节单位由高位到低位字节次序为A,A+1,A=2,A+3;这种存储器格局如下所示:
31 24 23 16 15 8 7 0
--------------------------------------------------------------------
字单位A |
--------------------------------------------------------------------
半字单位A | 半字单位A+2 |
--------------------------------------------------------------------
字节单位A | 字节单位A+1 | 字节单位A+2 | 字节单位A+3|
--------------------------------------------------------------------
在little-endian格局中,对付地点为A的字单位由高位到低位字节次序为A+3,A+2,A+1,A,这种存储格局如下所示
31 24 23 16 15 8 7 0
--------------------------------------------------------------------
字单位A |
--------------------------------------------------------------------
半字单位A+2 | 半字单位A |
--------------------------------------------------------------------
字节单位A+3 |字节单位A+2 | 字节单位A+1 | 字节单位A |
--------------------------------------------------------------------
在ARM体系中没有提供指令来选择存储器格局。要是体系中包括标准的ARM控制协处理惩罚器CP15,则CP15的寄存器C1的位[7]决定体系中存储器的格局。当体系复位时,寄存器C1的[7]值为零,这时体系中存储器格局为little-endian格局。要是体系中采取的是big-endian格局,则复位非常停止处理惩罚步伐中必须设置c1寄存器的[7]位。
3.非对齐的存储访问操纵
非对齐:位于arm状态时期,低二位不为0b00;位于Thumb状态时期,最低位不为0b0。
3.1非对齐的指令预取操纵
要是体系中指定当产生非对齐的指令预取操纵时,马虎地点中相应的位,则由存储体系实现这种马虎。
3.2非对齐的数据访问操纵
对付LOAD/STORE操纵,体系定义了下面3中大概的结果:
***实行结果不可预知
***马虎字单位地点低两位的值,即访问地点为字单位;马虎半字单位最低位的值,即访问地点为半字单位。
***由存储体系马虎字单位地点中低两位的值,半字单位地点最低位的值。
4.指令预取和自修改代码
当用户读取PC计数器的值时,返回的是当前指令下面的第二条指令的地点。对付ARM指令来说,返回当前指令地点值加8个字节;对付Thumb指令来说,返回值为当前指令地点值加4个字节。
自修改代码指的是代码在实行进程中修改自身。应只管即便克制利用。
5.存储器映射的I/O空间
在ARM中,I/O操纵通常被影射为存储器操纵。通常必要将存储器映射的I/O空间设置成非缓冲的。
ARM编译器支持的数据范例
数据范例 长度(位) 对齐特性
Char 8 1(字节对齐)
short 16 2(百字对齐)
Int 32 4(字对齐)
Long 32 4(字对齐)
Longlong 64 4(字对齐)
Float 32 4(字对齐)
Double 64 4(字对齐)
Long double 64 4(字对齐)
All pointers 32 4(字对齐)
Bool(C++ only) 32 4(字对齐)
1.整数范例
在ARM体系中,整数范例因此2的补码情势存储的。对付long long范例来说,在little endian内存模式下,其低32位生存在低地点的字单位中,高32为生存在高地点的字单位中;在big endian模式下,其低32位生存在高地点的字单位中,高32为生存在低地点的字单位中。对付整型数据的操纵服从下面的规矩:
**全部带标记的整型书的运算是根据二进制的补码举行的。
**带标记的整型数的运算不举行标记的扩展。
**带标记的整型数的右移操纵是算数移位。
**订定的移位位数的数是8位的无标记数。
**举行移位操纵的数被作为32位数。
**高出31位的逻辑左移的结果为0。
**对付无标记数和有标记的正数来说,高出32位的右移操纵结果为0;对付有标记的负数来说,高出32位的右移操纵结果为-1。
**整数除法运算的余数和除数有雷同的标记。
**当把一个整数截断成位数更短的整数范例的数时,并不克不及包管所得到的结果的最高位的标记位的精确性。
**整型数据之间的范例转换不会孕育产生非常停止。
**整型数据的溢出不会孕育产生非常停止。
**整型数据除以0将会孕育产生非常停止。
2.浮点数
在ARM体系中,浮点数是根据IEEE标准存储的。
**float范例的数是根据IEEE的单精度数表现的。
**double和long double 是用IEEE的双精度数表现的。
对付浮点数的操纵服从下面的规矩:
**服从正常的IEEE754规矩。
**当默认环境下克制浮点数运算非常停止。
**当产生卷绕时,用最靠近的数据来表现。
3.指针范例的数据
下面的规矩实用于处数据成员指针以外的其他指针:
**NULL被定义为0。
**相邻的两个存储单位地点相差一。
**在指向函数的指针和指向数据的指针举行数据转换时,编译器将会孕育产生告诫信息。
**范例size_t被定义为unsigned int.
**范例ptrdiff_t被定义为signed int。
**两个指针范例的数据相减时,结果可以根据下面的公式得到。
((int)a-(int)b)/(int)sizeof(type pointed to)
这时,只要指针所指的东西不是pack的,其对齐特性可以或许餍足整除的请求。
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号