当前位置:  技术问答>linux和unix

arm-elf-gcc 编译成功,但浮点运算结果是错的

    来源: 互联网  发布时间:2016-04-03

    本文导语:  采用以下*.bat脚本编译 [code=BatchFile] gcc -w -Ie:gccinclude -Os -mcpu=arm7tdmi -mabi=atpcs -msoft-float -ffloat-store -c %1.c ld -LE:gcclib -nostdlib -nostartfiles -e0x81000000 -Ttext 0x81000000 -o %1.elf %1.o  -lc -lm -lgcc ac -O binary  "%1.elf" ...

采用以下*.bat脚本编译

[code=BatchFile]
gcc -w -Ie:gccinclude -Os -mcpu=arm7tdmi -mabi=atpcs -msoft-float -ffloat-store -c %1.c
ld -LE:gcclib -nostdlib -nostartfiles -e0x81000000 -Ttext 0x81000000 -o %1.elf %1.o  -lc -lm -lgcc
ac -O binary  "%1.elf"  "%1.bin" 

[/code]


arm7软浮点库,没有使用linux操作系统调用,以下代码差不多是裸奔



代码可以执行,但结果不对郁闷。。。。,

double d1,d2,d3;
float f1,f2,f3;
U8 buf[100];


        d1 = 1.10;
        d2 = 2.20;
        d3 = 3.33;
        
        f1 = 12.23;
        f2 = 13.45;
        f3 = 15.67;

       
        d3 = d1 + d2;       
        sprintf(buf,"d1 + d2=%fn",d3);
        printf("%sn",buf);
        
        d3 = d1 - d2;
        sprintf(buf,"d1 - d2=%fn",d3);
        printf("%sn",buf);

        d3 = d1 * d2;
        sprintf(buf,"d1 * d2=%fn",d3);
        printf("%sn",buf);
        
        d3 = d1 / d2;
        sprintf(buf,"d1 div d2=%fn",d3);
        printf("%sn",buf);
        
        f3 = f1 + f2;
        sprintf(buf,"f1 + f2=%fn",f3);
        printf("%sn",buf);
        
        f3 = f1 - f2;
        sprintf(buf,"f1 - f2=%fn",f3);
        printf("%sn",buf);        
        
        f3 = f1 * f2;
        sprintf(buf,"f1 * f2=%fn",f3);
        printf("%sn",buf);        
        
        f3 = f1 / f2;
        sprintf(buf,"f1 / f2=%fn",f3);
        printf("%sn",buf);        



附:

E:prj>ad -x test.elf | more

test.elf:     file format elf32-littlearm
test.elf
architecture: arm, flags 0x00000012:
EXEC_P, HAS_SYMS
start address 0x81000000

Program Header:
    LOAD off    0x00000054 vaddr 0x81000000 paddr 0x81000000 align 2**2
         filesz 0x00009f24 memsz 0x0000a01c flags rwx
private flags = 202: [APCS-32] [FPA float format] [software FP] [has entry point
]


|
结果如何不对,能贴出来看看么?

|
用串口显示?

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用eclipse 加入arm-elf-gcc 或arm-linux-gcc 编译器为什么不好使
  • arm-elf-gcc编译出来的elf文件如何转换成bin格式?
  • arm-elf-gcc编译时如何强制其使用长指针?
  • 救命啊!!!有哪位大虾用arm-elf-gcc编译过boa-0.94.13吗?
  • 关于交叉编译arm-elf-gcc的问题
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • arm-elf-gcc问题
  • 在线等!!!!急 arm-elf-gcc编绎出错
  • 大家帮我分析一下这几句arm-elf-gcc –g –c –o test.c
  • arm-elf-gcc 默认输出文件


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3