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

[复制链接]
 楼主| zhuchina 发表于 2007-11-12 19:27 | 显示全部楼层 |阅读模式
我用的是ads1.2,今天发现一个bug<br />char&nbsp;c1;<br />if(c1&nbsp;&gt=0)<br />......<br />else<br />......<br /><br />这个语句,else下的程序竟然永远执行不了,后来改为&nbsp;if(c1&lt0x80)&nbsp;才可以,晕死,查了我半天。<br />有经验的可以提示一下ads还有多少bug啊,免得新来的走弯路
阿南 发表于 2007-11-12 19:34 | 显示全部楼层

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

  
high 发表于 2007-11-12 19:56 | 显示全部楼层

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

这里应该是您把ads配置成了char&nbsp;==&nbsp;unsigned&nbsp;char这种情况了.
twentyone 发表于 2007-11-12 20:19 | 显示全部楼层

LS说得对

  
dld2 发表于 2007-11-12 20:24 | 显示全部楼层

这个长见识了

  
computer00 发表于 2007-11-12 20:30 | 显示全部楼层

用signed char

  
biao.l 发表于 2007-11-12 22:23 | 显示全部楼层

RE

我遇过在一文件定义的全局变量,在另一个文件中改变不了大小,已用volatile定义
dld2 发表于 2007-11-13 09:05 | 显示全部楼层

char类型

搜了一下。<br />据说:<br />&nbsp;&nbsp;&nbsp;&nbsp;char类型比较特殊,ARM的编译器会把它默认为是unsigned的。<br />&nbsp;&nbsp;&nbsp;&nbsp;而int和short,默认是有符号的。<br /><br />但是:<br />以下是strcpy的原型:<br />&nbsp;&nbsp;&nbsp;&nbsp;extern&nbsp;char&nbsp;*strcpy(char&nbsp;*,&nbsp;const&nbsp;char&nbsp;*);<br />以下程序:<br />&nbsp;&nbsp;&nbsp;&nbsp;strcpy(buf,&nbsp;&quot;123&quot;);<br />如果我定义buf为:<br />&nbsp;&nbsp;&nbsp;&nbsp;signed&nbsp;char&nbsp;buf[10]或者unsigned&nbsp;char&nbsp;buf[10]<br />&nbsp;&nbsp;&nbsp;&nbsp;编译器报错,都说类型不匹配。<br />只有char&nbsp;buf[10]才可以。<br /><br />呵呵,应该也不是简单默认。<br /><br />我又仿照strcpy写了个函数:<br />void&nbsp;abc(int&nbsp;*a,&nbsp;const&nbsp;int&nbsp;*b)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;*a&nbsp;=&nbsp;*b;<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br />使用这个函数时,编译器确实认为int就是signed&nbsp;int。<br /><br />怪怪的。<br /><br />
 楼主| zhuchina 发表于 2007-11-13 12:36 | 显示全部楼层

keil 是可以的

我这个程序是keil下的工程里复制过来的,我在keil里运行的好好的,到了ads就不行了,呵呵。以后如果谁从keil下复制代码过来要小心哦。
 楼主| zhuchina 发表于 2007-11-13 12:45 | 显示全部楼层

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

high怎么不顺便说说ads怎么配置char为signed&nbsp;char啊
high 发表于 2007-11-13 13:10 | 显示全部楼层

选项: -zc

详细请阅读编译器手册.<br /><br /><br />如果使用ide,可以在ide里面设置.有一个checkbox勾起.<br />(编译选项里面一个label:code&nbsp;gen.把里面的plain&nbsp;char&nbsp;is&nbsp;signed&nbsp;勾起)
xieqin 发表于 2007-11-13 22:26 | 显示全部楼层

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

  
 楼主| zhuchina 发表于 2007-11-15 13:22 | 显示全部楼层

谢谢high,高人啊

确实有这个选项,钩一下就可以了,谢谢high,
wangshujun 发表于 2007-11-16 11:37 | 显示全部楼层

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

明显是少见多怪,很多发现的ads所谓bug,都是选项没搞对
rockos 发表于 2007-11-16 11:57 | 显示全部楼层

ads 1.2的bug

<br />...<br />char&nbsp;buffer[128];<br /><br />memset&nbsp;(buffer,&nbsp;0,&nbsp;sizeof(buffer));<br />sprintf(buffer,&nbsp;&quot;%f&quot;,&nbsp;3.14159265);<br /><br />printf&nbsp;(&quot;%02x&nbsp;%02x&nbsp;%02x
&quot;,&nbsp;buffer[0],&nbsp;buffer[1],&nbsp;buffer[2]);<br />...<br /><br />注意:&nbsp;不要在simulator下运行,&nbsp;拿到板上跑.
dld2 发表于 2007-11-16 13:24 | 显示全部楼层

楼上的问题我也遇到了

printf输出浮点数,小数点变成乱字符。
rockos 发表于 2007-11-16 13:46 | 显示全部楼层

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

<br />这个世界基本不存在没有bug的软件,&nbsp;只不过多数人没有遇到而已.<br /><br />另外,&nbsp;ADS的库函数atof也有问题,&nbsp;小数点之后的部分根本转换不出来.<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

15

帖子

1

粉丝

5

主题

15

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部