关于S3C2440de6410的CPU,关于FPU方面的配置

http://www.crifan.com/find_s3c6410_march_macpu_mtune_mfpu_mfloat_abi/

【背景】

看到有人问关于S3C2440de6410的CPU,关于FPU方面的配置。

现去查找整理一下。

【折腾过程】

1.关于crosstool-ng中的-march,-mcpu,-mtune的配置,可参考:

crosstool-ng中的配置参数:Architecture level, Emit assembly for CPU, Tune for CPU

2.关于-mfpu的配置可参考:

crosstool-ng中的配置参数:浮点处理单元FPU

3.现在去研究S3C6410中的核心参数是啥:

先去搜:

s3c6410 vfp

找到:

http://www.samsung.com/global/business/semiconductor/file/media/s3c6410_datasheet_200804-0.pdf

可知:

s3c6410的内核是:

ARM1176ZJF 533/667MHz VFP/SIMD

4.而对于ARM1176ZJF,对应的再去搜:

ARM1176 vfp

找到:

1.4.2. Vector Floating-Point (VFP)

中的:

The VFP implements the ARM VFPv2 floating-point coprocessor instruction set.

以及:

http://www.arm.com/zh/products/processors/classic/arm11/arm1176.php

找到:

ARM1176

架构
ARMv6

Dhrystone 性能
1.25 DMPS/MHz

多核
否 – 仅单核

ISA 支持

  • ARM
  • Thumb®
  • Jazelle® DBX
  • DSP 扩展
  • 浮点单元(可选)

内存管理
内存管理单元

调试和跟踪
用于 ARM11 的 CoreSight™ 设计工具包(单独提供)

和:

ARM 浮点架构 (VFP)

中的:

VFP 架构版本

在 ARMv7 架构之前,VFP 代表用于矢量运算的矢量浮点架构。

对于许多应用来说,设置硬件浮点至关重要,并且硬件浮点可用作使用高级设计工具(如 MatLab、MATRIXx 和 LabVIEW)直接对系统建模和派生应用程序代码的片上系统 (SoC) 设计流程的一部分。在与NEON™ 多媒体处理功能结合使用时,可增强图像应用程序的性能(如缩放、2D 和 3D 转换、字体生成和数字过滤)。

迄今为止,VFP 主要有三个版本:

  1. VFPv1 已废弃。要获取详细信息,可向 ARM 发送相关请求。
  2. VFPv2 是对 ARMv5TE、ARMv5TEJ 和 ARMv6 架构中 ARM 指令集的可选扩展。
  3. VFPv3 是对 ARMv7-A 和 ARMv7-R 配置文件中 ARM、 Thumb®® 和 ThumbEE 指令集的可选扩展。可使用 32 个或 16 个双字长寄存器实现 VFPv3。术语 VFPv3-D32 和 VFPv3-D16 用于区别这两个实现选项。扩展 VFPv3 使用半精度扩展,可在半精度浮点和单精度浮点之间提供双向转换功能。

5.其他一些参考资料:

http://en.wikipedia.org/wiki/List_of_Samsung_System_on_a_Chip

中的:

S3C6410[12] 65 nm LP ARMv6 533/667/800 MHz Single-coreARM11 (ARM1176ZJF-S) 3D Graphics accelerator mSDRAM, mDDR 2009

 

【总结】

1.S3C6410内核是ARM1176ZJF

2.ARM11的内核是ARMv6架构

3.ARM1176ZJF的ARMv6中用的FPU是VFPv2

对应着:

gcc中的选项是:

参考:

3.17.3 ARM Options

中的:

-march=armv6

-mcpu=arm1176jzf-s

-mtune=s3c6410

或者是:

(参考:[Clfs-support] Target specific options…)

-mtune=arm1176jzf-s

对应fpu的配置,应该是:

(由于3.17.3 ARM Options中没有看到vfpv2,而且网上搜

-mfpu=vfp

在另外,应该是:

-mfloat-abi=hard

或:

(参考:Android.mk)

-mfloat-abi=softfp

即可。

你可能感兴趣的:(关于S3C2440de6410的CPU,关于FPU方面的配置)