3446|1

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

arm-elf-gcc在arm上的一个bug,如何绕开这个bug? [复制链接]

经过多次测试,发现arm-elf-gcc编译器在格式带有浮点参数的字符串的时候会导致CPU(无论是arm9还是arm7)跑飞,gcc版本号为arm-elf-gcc 4.1.1,编译的批处理文件内容如下:
path=c:\windows;c:\windows\system32;E:\GNUARM\bin
arm-elf-as  init.s -o .\obj\init.o
arm-elf-gcc -O3 -IE:\GNUARM\include -I..\inc -mlittle-endian -mcpu=arm7 -mhard-float -c main.c -o obj\main.o
arm-elf-ld -Tldscript  -LE:\GNUARM\arm-elf\lib -LE:\GNUARM\lib\gcc\arm-elf\4.1.1 -L.  -o FloatTest.elf obj\init.o obj\main.o -lAppApi -lc -lgcc
pause

应用程序的main.c文件内容如下:

#include
#include "AppInterface.h"

int main(void)       
{
    float fTemp;
    char strTemp[2000];
   
    (void)Lib_AppInit();  // 应用运行初始化,无须理会
   
    Lib_LcdCls();  // 清液晶屏幕,无须理会
    Lib_LcdGotoxy(0, 0);  // 在显示指针指到(0,0)位置,无须理会
    fTemp = 0.01f*12345.331f;  // 浮点运算没问题,不会出错
    Lib_Lcdprintf("ABC\n");  // 显示"ABC",没问题
    Lib_KbGetCh();  // 等待用户按键
    sprintf(strTemp, "%f", fTemp);  // 在这里出问题
    Lib_Lcdprintf("kk=%s", strTemp);  // 程序在这里跑飞,无法往下运行
    Lib_KbGetCh();
    return 0;
}
能否找到一种解决的办法,绕开该问题?
此帖出自ARM技术论坛

最新回复

问题已经解决,将浮点数转换成整数来显示即可  详情 回复 发表于 2008-3-19 12:28
点赞 关注
 

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
问题已经解决,将浮点数转换成整数来显示即可
此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表