免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4024 | 回复: 1

硬件浮点参数设置问题 [复制链接]

论坛徽章:
0
发表于 2010-06-28 10:06 |显示全部楼层
有谁知道编译gcc的时候,需要配置的arm11 cpu的参数是什么?

tune的参数有这些:
9694 `-mcpu=NAME'
9695      This specifies the name of the target ARM processor.  GCC uses
9696      this name to determine what kind of instructions it can emit when
9697      generating assembly code.  Permissible names are: `arm2', `arm250',
9698      `arm3', `arm6', `arm60', `arm600', `arm610', `arm620', `arm7',
9699      `arm7m', `arm7d', `arm7dm', `arm7di', `arm7dmi', `arm70', `arm700',
9700      `arm700i', `arm710', `arm710c', `arm7100', `arm720', `arm7500',
9701      `arm7500fe', `arm7tdmi', `arm7tdmi-s', `arm710t', `arm720t',
9702      `arm740t', `strongarm', `strongarm110', `strongarm1100',
9703      `strongarm1110', `arm8', `arm810', `arm9', `arm9e', `arm920',
9704      `arm920t', `arm922t', `arm946e-s', `arm966e-s', `arm968e-s',
9705      `arm926ej-s', `arm940t', `arm9tdmi', `arm10tdmi', `arm1020t',
9706      `arm1026ej-s', `arm10e', `arm1020e', `arm1022e', `arm1136j-s',
9707      `arm1136jf-s', `mpcore', `mpcorenovfp', `arm1156t2-s',
9708      `arm1156t2f-s', `arm1176jz-s', `arm1176jzf-s', `cortex-a5',
9709      `cortex-a8', `cortex-a9', `cortex-r4', `cortex-r4f', `cortex-m3',
9710      `cortex-m1', `cortex-m0', `xscale', `iwmmxt', `iwmmxt2', `ep9312'.


arch的参数:
9722 `-march=NAME'
9723      This specifies the name of the target ARM architecture.  GCC uses
9724      this name to determine what kind of instructions it can emit when
9725      generating assembly code.  This option can be used in conjunction
9726      with or instead of the `-mcpu=' option.  Permissible names are:
9727      `armv2', `armv2a', `armv3', `armv3m', `armv4', `armv4t', `armv5',
9728      `armv5t', `armv5e', `armv5te', `armv6', `armv6j', `armv6t2',
9729      `armv6z', `armv6zk', `armv6-m', `armv7', `armv7-a', `armv7-r',
9730      `armv7-m', `iwmmxt', `iwmmxt2', `ep9312'.



vfp似乎也分很多类
9732 `-mfpu=NAME'
9733 `-mfpe=NUMBER'
9734 `-mfp=NUMBER'
9735      This specifies what floating point hardware (or hardware
9736      emulation) is available on the target.  Permissible names are:
9737      `fpa', `fpe2', `fpe3', `maverick', `vfp', `vfpv3', `vfpv3-fp16',
9738      `vfpv3-d16', `vfpv3-d16-fp16', `vfpv3xd', `vfpv3xd-fp16', `neon',
9739      `neon-fp16', `vfpv4', `vfpv4-d16', `fpv4-sp-d16' and `neon-vfpv4'.
9740      `-mfp' and `-mfpe' are synonyms for `-mfpu'=`fpe'NUMBER, for
9741      compatibility with older versions of GCC.


我修改了lablin脚本中TARGET_SOC的参数如下:
BU_CPU_OPT="--with-float=hard"
GCC_CPU_OPT="--with-float=hard --with-arch=armv6 --with-tune=mpcore"
编译能通过,但是用qemu-arm运行helloworld也会报错:
$ sudo qemu-arm -L /home/baker/maxwit/rootfs/ a.out
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault

论坛徽章:
0
发表于 2011-03-15 15:57 |显示全部楼层
本帖最后由 halechan 于 2011-03-15 15:58 编辑

--with-float=softfp
注:
soft、softfp、hard的区别:
"soft"

    *

      Full software floating point - compiler should refuse to generate a real FPU instruction and -mfpu= is ignored.
    * FPU operations are emulated by the compiler
    * Function calls are generated to pass FP arguments (float, double) in integer registers (one for float, a pair of registers for double)

"softfp"

    *

      Hardware floating point using the soft floating point ABI
    * To reiterate, function calls are generated to pass FP arguments in integer registers
    *

      Compiler can make smart choices about when and if it generates emulated or real FPU instructions depending on chosen FPU type (-mfpu=)
    *

      This means soft and softfp code can be intermixed
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP