ARM11 S3C6410 硬件浮点(VFP)实现

http://blog.csdn.net/liujia2100/article/details/7459683

在调试一个代码时,编译能顺利编过。可是,就是不能执行。找了半天才发现,原来是浮点问题。由于6410支持硬件浮点,找了很久,才弄清楚怎么使用硬件浮点。

1.RVDS2.2 选择VFP2
2.在初始化时,配置协处理器来打开和配置浮点部件。

VFPEnable                           EQU        (0x40000000)
;------------------------------------ 
; Enable VFP via Coprocessor Access Control Register 
;------------------------------------ 
    mrc        p15, 0, r0, c1, c0, 2 
    orr         r0, r0, #0x00F00000 
    mcr        p15, 0, r0, c1, c0, 2 
 
;------------------------------------ 
; Add following: SISO added 
; Enable FPEXC enable bit to enable VFP 
;------------------------------------ 
    MOV        r1, #0 
    MCR        p15, 0, r1, c7, c5, 4 
    MOV        r0,#VFPEnable 
    FMXR       FPEXC, r0       ; FPEXC = r0 
    nop 
;    nop 
;    nop 
;    nop 
;    nop

时间: 2024-11-08 19:28:02

ARM11 S3C6410 硬件浮点(VFP)实现的相关文章

硬浮点 VFP

http://blog.chinaunix.net/uid-27875-id-3449290.html 编译器对VFP的支持一个浮点数操作最后是翻译成VFP指令,还是翻译成fpa,或者是softfloat是编译器决定的, 同时也得有OS的支持.用arm-none-linux-gnueabi-gcc 4.1.2指定-mfpu=vfp -mfloat-abi=softfp参数之后生成VFP指令.好像是从GCC 4之后才支持VFP ARM VFP的一点体会关键字: VFP arm1136JF-S MC

Linux下VFP NEON浮点编译

http://blog.csdn.net/liujia2100/article/details/27236477 NEON:SIMD(Single Instruction Multiple Data 单指令多重数据) 指令集, 其针对多媒体和讯号处理程式具备标准化的加速能力. VFP: (Vector Float Point), 向量浮点运算单元,arm11(s3c6410 支持VFPv2),Cortex-A8(s5pv210)支持VFPv3. NEON和VFPv3 浮点协处理器共享寄存器组,所

Android硬件加速介绍与实现

概述 在手机客户端尤其是Android应用的开发过程中,我们经常会接触到"硬件加速"这个词.由于操作系统对底层软硬件封装非常完善,上层软件开发者往往对硬件加速的底层原理了解很少,也不清楚了解底层原理的意义,因此常会有一些误解,如硬件加速是不是通过特殊算法实现页面渲染加速,或是通过硬件提高CPU/GPU运算速率实现渲染加速. 本文尝试从底层硬件原理,一直到上层代码实现,对硬件加速技术进行简单介绍,其中上层实现基于Android 6.0. 硬件加速对App开发的意义 对于App开发者,简单

4.1.Android的硬件加速官方文档

参考 https://developer.android.com/guide/topics/graphics/hardware-accel.html 硬件加速背景知识 在手机客户端尤其是Android应用的开发过程中,我们经常会接触到"硬件加速"这个词.由于操作系统对底层软硬件封装非常完善,上层软件开发者往往对硬件加速的底层原理了解很少,也不清楚了解底层原理的意义,因此常会有一些误解,如硬件加速是不是通过特殊算法实现页面渲染加速,或是通过硬件提高CPU/GPU运算速率实现渲染加速. 本

arm-none-linux-gnueabi交叉工具链安装 ,介绍,区别总结

1.arm-none-linux-gnueabi-gcc下载 http://www.veryarm.com/arm-none-linux-gnueabi-gcc arm-none-linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括裸机程序.u-boot.Linux kernel.filesystem和App应用程序.使用时,按照主机平台,可以下载以下任一版本中的一个

arm-linux-gnueabi和arm-linux-gnueabihf 的区别

转载整理自:http://www.cnblogs.com/xiaotlili/p/3306100.html 一. 什么是ABI和EABI1 .ABI ABI(二进制应用程序接口-Application Binary Interface (ABI) for the ARM Architecture)在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口.    ABI涵盖了各种细节,如:    1> 数据类型的大小.布局和对齐;    2> 调用约定(控制

交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

  自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟-.. 一. 什么是ABI和EABI 1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture) 在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口. ABI涵盖了各种细节,如: 数据类型的大小.布局和对齐; 调用约定(控制着函数的参数

第一部分:为2440 制作自己的任意版本的交叉编译器

第一部分  安装交叉编译工具链 使用crosstool-0.43制作交叉编译工具链,随着gcc版本的增高,正确的制作已不太可能,crosstool-0.43制之后不再有更新,因此这个选用的是nt-ng工具制作交叉编译工具链. 1.nt-ng的安装 Crostool很多年不在维护了,下面尝试一下使用crosstool的下一代 crosstool-ng 具体使用说明见: http://www.crifan.com/files/doc/docbook/crosstool_ng/release/html

[转载]arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别

arm交叉编译器gnueabi.none-eabi.arm-eabi.gnueabihf.gnueabi区别 (http://www.veryarm.com/296.html) 命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS vendor - 工具链提供商 os - 目标操作系统 eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface) 根