ARMHF(hard-float ABI for ARM)

发布者:哈哈哈33最新更新时间:2016-07-25 来源: eefocus关键字:ARMHF  hard-float  ABI  for  ARM 手机看文章 扫描二维码
随时随地手机看文章
1. armhf是什么

      在Ubuntu 12.04和Debian里,除了arm, armel,还出现了一个名为armhf的版本。这个东西是什么?

众所周知,armel是目前主要的ARM ABI。armhf则是armel的一个变种,主要区别在浮点计算上。

在armel中,关于浮点数计算的约定有三种。

以gcc为例,对应的-mfloat-abi参数值有三个:

soft

      soft是指所有浮点运算全部在软件层实现,效率当然不高,适合于早期没有浮点计算单元的ARM处理器;

softfp

      softfp是目前armel的默认设置,它将浮点计算交给FPU处理,但函数参数的传递--使用通用的整型寄存器而不是FPU寄存器

hard

      hard则使用FPU浮点寄存器将函数参数传递给FPU处理。

需要注意的是,在兼容性上,soft与后两者是兼容的,但softfp和hard两种模式不兼容。

默认情况下,armel使用softfp,因此将hard模式的armel单独作为一个abi,称之为armhf。


2. 价值

     使用softfp模式,会存在不必要的浮点到整数、整数到浮点的转换。

     而使用hard模式,在每次浮点相关函数调用时,平均能节省20个CPU周期[1]。

    对ARM这样每个周期都很重要的体系结构来说,这样的提升无疑是巨大的。 

     在完全不改变源码和配置的情况下,在一些应用程序上,使用armhf能得到20——25%的性能提升[2]。

     对一些严重依赖于浮点运算的程序,更是可以达到300%的性能提升[3]。


3. 使用

      armhf的开启需要硬件的支持,在Debian的wiki上要求ARMv7 CPU、Thumb-2指令集以及VFP3D16浮点处理器[4]。

在gcc的编译参数上,使用-mfloat-abi=hard -mfpu=vfp即可。

在工具上,CodeSourcery最早支持hard模式。也可已自己编译工具链[5]。

 


4. linux with armfp的历史

      2010年5月20日,Konstantinos Margaritis发文称将Ubuntu Larmic移植为hard模式[6]。

      这一消息后来在powerdeveloper上引发关于性能提升的讨论[7]。

2010年7月6日,Hector Oron将他与Konstantinos的邮件讨论记录发往debian-arm邮件列表[8],

将其称之为armelfp,引起社区重视,并得到armhf这个正式名称。

2010年7月18日,非官方的debian-armhf移植工作开始[9]。

2011年11月24日,该移植开始成为debian官方活动。

目前,debian仓库中超过90%的软件已经移植完毕[10]。

Debian预计在Wheezy (7.0)发布armhf的正式版。而Ubuntu也计划在Precise Pangolin 12.04 LTS中发布一个armhf版。

此外,对此前提到过的Toshiba AC100,目前已经有了armhf的debian和ubuntu镜像可以安装试用[11, 12]。

关键字:ARMHF  hard-float  ABI  for  ARM 引用地址:ARMHF(hard-float ABI for ARM)

上一篇:ARM MP-core启动流程
下一篇:关于初学者该选择学习ARM7还是ARM9的一点建议

推荐阅读最新更新时间:2024-03-16 15:01

ARM开发环境KEIL和IAR设置堆栈的占用空间大小
大家在ARM开发过程中都会遇到堆栈不够或者堆栈设置太大的情况,下面我就通过IAR和KEIL两个开发环境,来介绍如何修改堆栈的大小 工具/原料 IAR KEIL 一、IAR 打开工程文件,在左上角工具栏选择 Project- Options... 在Category栏选中Linker 在右侧内容栏选中Config 勾选Override defaut选项 点击Edit按钮,在弹出的对话框中选中Stack/Heap Sizes,这样就可以修改CSTACK和HEAP的大小了 END 二、KEIL 打开ARM芯片的启动文件,比如startup_stm32f10x_md_vl.s文件 在文件的
[单片机]
<font color='red'>ARM</font>开发环境KEIL和IAR设置堆栈的占用空间大小
揭秘:欧德宁离去 英特尔为什么没干过ARM
   欧德宁卸任CEO后,若是仅对欧德宁齐声说句再见,就完全低估了他作为世上最重要芯片制造商的领袖所作的贡献。英特尔是一部自己完成研发和部署的机器,并不是一个生态系统。本文重塑了一个更完整的欧德宁,以及那段离不开他却又被他错过的光辉岁月。   公正的评价任何人都是及其困难的,包括著名公司的CEO。欧德宁的卸任成为2013年科技巨头历史上的热门话题,而对欧德宁任期内的评价也众说纷纭。欧德宁为英特尔工作了四十年,担任CEO八年,带领英特尔成为计算机史上领先的芯片制造世界级企业,而最近一个十年中,却因错失移动端的大好趋势而饱受诟病,风头大减。英特尔曾经开创了未来,而未来能否体面的活下去?这是所有人的疑问。   正如《大西洋(行情 股吧
[手机便携]
ARM7单片机(学习ing)—(六)、SPI接口—01
六、SPI接口 六—(01)、SPI相关应用和寄存器的介绍~~ 1、特性 2、描述 3、管脚描述 4、寄存器描述 a、SPI控制寄存器(SPCR—0XEOO2000) b、SPI状态寄存器(SPSR —0XE0020004) c、SPI数据寄存器(SPDR—0XE0020008) d、SPI时钟计数寄存器(SPCCR—0XE00200OC) e、SPI中断寄存器(SPINT—0XE002001C) 5、SPI方框图
[单片机]
<font color='red'>ARM</font>7单片机(学习ing)—(六)、SPI接口—01
ARM开发板系统移植-----rootfs的制作
前面两篇文章分别介绍了mini2440开发板上运行的bootloader和kernel,到这里系统启动后其实是停留在一个“僵死”的状态---无法挂载根文件系统。 这里将介绍如何制作一个根文件系统,并且挂载到内核中---即让内核能够访问到文件系统中的目录和文件。从用户的角度来看文件系统无非就是各个目录和文件,注意,这些目录和文件可以存在内存中,也可以存在Nand Flash 或者NOR Flash中,视具体的文件系统而定。本文就用基于内存的initram 和基于网络的nfs文件系统做例子介绍文件系统的概念。 首先什么是文件系统?就本人理解而言,它就是操作系统提供的一种抽象,即操作系统将存储介质抽象化,并提供一种访问这种抽象的
[单片机]
<font color='red'>ARM</font>开发板系统移植-----rootfs的制作
基于ARM的嵌入式最小系统研究
1.引言 随着嵌入式相关技术的迅速发展,嵌入式系统的功能越来越强大,应用接口更加丰富,根据实际应用的需要设计出特定的 嵌入式最小系统 和应用系统,是嵌入式系统设计的关键。目前在嵌入式系统开发的过程中,开发者往往把大量精力投入到嵌入式微处理器MPU(Micro Processing Unit)与众多外设的连接方式以及应用代码的开发之中,而忽视了对嵌入式系统最基本、最核心部分的研究。 当前在嵌入式领域中, ARM (Advanced RISC Machines)处理器被广泛应用于各种嵌入式设备中。由于ARM嵌入式体系结构类似并且具有通用的外围电路,同时ARM内核的嵌入式最小系统的设计原则及方法基本相同,这使得对嵌入式最小系统的研究在整
[单片机]
基于<font color='red'>ARM</font>的嵌入式最小系统研究
什么是ARM中的SP(堆栈)和LR?
问题描述 我一遍又一遍地阅读定义,我还没有得到什么是ARM中的SP和LR?我明白PC(它显示下一个指令的地址),SP和LR可能是相似的,但我只是不明白它是什么。你可以帮我吗? 编辑:如果你可以用例子说明一下,那会很棒。 编辑:终于弄清楚LR是什么,还没有得到什么SP。 最佳解决方案 LR是用于保存函数调用的返回地址的 link register 。 SP是堆栈指针。堆栈通常用于在函数调用中保存”automatic”变量和上下文/参数。从概念上讲,您可以将”stack”视为您”pile”您的数据的地方。您将”stacking”保留在一个数据之上,堆栈指针告诉您”high”的数据是”stack”。您可以从”stack”的”to
[单片机]
芯片工业巨头Intel和ARM竞争陷入白热化
    芯片制造工业竞赛中不断升温,对制造出更快、更省电的芯片的追求越演越烈。有分析师认为,合约芯片制造商GlobalFoundries如果照现在的势头发展下去,在2014年该公司的生产技术便可和Intel的芯片生产水平一争高下。 随着芯片技术的不断发展以及在实际产品中的广泛应用,使得智能手机、平板以及笔记本电脑正在变得越来越快,而续航时间却越来越长。GlobalFoundries目前同时生产x86构架和ARM构架的智能手机、平板和PC。预计到2014年,将会生产一种处理器,该处理器将使得GlobalFoundries的芯片制造水平和Intel看齐。Intel未就此发表评论。 Intel是是世界上最大、同时也是最尖端的芯片制造商。I
[手机便携]
μCOS-II在ARM Cortex-M3处理器上的移植
0 引言 嵌入式系统已经广泛渗透到了人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%,其中ARM的应用最为广泛。基于ARM内核的处理器以其诸多优异性能而成为各类产品中选用较多的处理器之一。 当系统越来越大,应用越来越多时,就出现了如何管理众多的硬件资源,以及如何满足系统的实时控制要求和如何提高系统软件开发效率等不可回避的问题。这时,使用嵌入式操作系统很有必要。操作系统的主要作用有:统一管理系统资源;为用户提供访问硬件的接口;调度多个应用程序和管理文件系统等。 1 概述 μC/OS-II是著名的、源码公开的实时内核,是专为嵌入式应用设计的,可用于各类8位、16位和32位处理器。μC/OS-II已经
[单片机]
μCOS-II在<font color='red'>ARM</font> Cortex-M3处理器上的移植
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved