打印

ads的bug有多少啊?有经验的可以提示一下,免得新来的走弯

[复制链接]
2448|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuchina|  楼主 | 2007-11-12 19:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是ads1.2,今天发现一个bug
char c1;
if(c1 >=0)
......
else
......

这个语句,else下的程序竟然永远执行不了,后来改为 if(c1<0x80) 才可以,晕死,查了我半天。
有经验的可以提示一下ads还有多少bug啊,免得新来的走弯路

相关帖子

沙发
阿南| | 2007-11-12 19:34 | 只看该作者

是吗?呵呵,一直都还没碰上BUG,看来我还是比较幸运

使用特权

评论回复
板凳
high| | 2007-11-12 19:56 | 只看该作者

有一些不是bug.需要熟悉ads

这里应该是您把ads配置成了char == unsigned char这种情况了.

使用特权

评论回复
地板
twentyone| | 2007-11-12 20:19 | 只看该作者

LS说得对

使用特权

评论回复
5
dld2| | 2007-11-12 20:24 | 只看该作者

这个长见识了

使用特权

评论回复
6
computer00| | 2007-11-12 20:30 | 只看该作者

用signed char

使用特权

评论回复
7
biao.l| | 2007-11-12 22:23 | 只看该作者

RE

我遇过在一文件定义的全局变量,在另一个文件中改变不了大小,已用volatile定义

使用特权

评论回复
8
dld2| | 2007-11-13 09:05 | 只看该作者

char类型

搜了一下。
据说:
    char类型比较特殊,ARM的编译器会把它默认为是unsigned的。
    而int和short,默认是有符号的。

但是:
以下是strcpy的原型:
    extern char *strcpy(char *, const char *);
以下程序:
    strcpy(buf, "123");
如果我定义buf为:
    signed char buf[10]或者unsigned char buf[10]
    编译器报错,都说类型不匹配。
只有char buf[10]才可以。

呵呵,应该也不是简单默认。

我又仿照strcpy写了个函数:
void abc(int *a, const int *b)
{
    *a = *b;
    return;
}
使用这个函数时,编译器确实认为int就是signed int。

怪怪的。

使用特权

评论回复
9
zhuchina|  楼主 | 2007-11-13 12:36 | 只看该作者

keil 是可以的

我这个程序是keil下的工程里复制过来的,我在keil里运行的好好的,到了ads就不行了,呵呵。以后如果谁从keil下复制代码过来要小心哦。

使用特权

评论回复
10
zhuchina|  楼主 | 2007-11-13 12:45 | 只看该作者

high怎么不顺便说说ads怎么配置char为signed char啊

high怎么不顺便说说ads怎么配置char为signed char啊

使用特权

评论回复
11
high| | 2007-11-13 13:10 | 只看该作者

选项: -zc

详细请阅读编译器手册.


如果使用ide,可以在ide里面设置.有一个checkbox勾起.
(编译选项里面一个label:code gen.把里面的plain char is signed 勾起)

使用特权

评论回复
12
xieqin| | 2007-11-13 22:26 | 只看该作者

在C++和ANSI C标准中,char类型为无符号数据

使用特权

评论回复
13
zhuchina|  楼主 | 2007-11-15 13:22 | 只看该作者

谢谢high,高人啊

确实有这个选项,钩一下就可以了,谢谢high,

使用特权

评论回复
14
wangshujun| | 2007-11-16 11:37 | 只看该作者

大多数的编译器都有没有声明默认什么数据类型的选项的

明显是少见多怪,很多发现的ads所谓bug,都是选项没搞对

使用特权

评论回复
15
rockos| | 2007-11-16 11:57 | 只看该作者

ads 1.2的bug


...
char buffer[128];

memset (buffer, 0, sizeof(buffer));
sprintf(buffer, "%f", 3.14159265);

printf ("%02x %02x %02x ", buffer[0], buffer[1], buffer[2]);
...

注意: 不要在simulator下运行, 拿到板上跑.

使用特权

评论回复
16
dld2| | 2007-11-16 13:24 | 只看该作者

楼上的问题我也遇到了

printf输出浮点数,小数点变成乱字符。

使用特权

评论回复
17
rockos| | 2007-11-16 13:46 | 只看该作者

= 基本上没有不带bug的软件 =


这个世界基本不存在没有bug的软件, 只不过多数人没有遇到而已.

另外, ADS的库函数atof也有问题, 小数点之后的部分根本转换不出来.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

15

帖子

1

粉丝