打印

TI例程中lwip的一个坑

[复制链接]
2096|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yzjgod|  楼主 | 2012-12-17 15:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
tcp.h中有这么一句:


/* Modified by TI to work around an IAR 5.41 compiler bug */
/* TI replacement definitions... */
#define TCP_SEQ_LT(a,b)     ((s32_t)(a) < (s32_t)(b))
#define TCP_SEQ_LEQ(a,b)    ((s32_t)(a) <= (s32_t)(b))
#define TCP_SEQ_GT(a,b)     ((s32_t)(a) > (s32_t)(b))
#define TCP_SEQ_GEQ(a,b)    ((s32_t)(a) >= (s32_t)(b))
这个在边界处理的时候有个大坑,把我坑苦了啊,要改回去:


#define TCP_SEQ_LT(a,b)     ((s32_t)((a)-(b)) < 0)
#define TCP_SEQ_LEQ(a,b)    ((s32_t)((a)-(b)) <= 0)
#define TCP_SEQ_GT(a,b)     ((s32_t)((a)-(b)) > 0)
#define TCP_SEQ_GEQ(a,b)    ((s32_t)((a)-(b)) >= 0)
周知!

相关帖子

沙发
shenmu2012| | 2012-12-18 18:02 | 只看该作者
没怎么看懂的,顶一下的,懂这个的来看看撒的啊

使用特权

评论回复
板凳
Jacobseu| | 2012-12-18 18:56 | 只看该作者

使用特权

评论回复
地板
superman2012| | 2012-12-19 16:15 | 只看该作者
不太明白,感觉到这两个代码差不多呀

使用特权

评论回复
5
yzjgod|  楼主 | 2012-12-20 10:06 | 只看该作者
这段代码在比较0X7FFFFFFF和0X80000000的时候就有问题了,lwip用的都是无符号数,应该是后边的比前面的大,转成带符号数后就不对了,但是作差没有这个问题

使用特权

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

本版积分规则

239

主题

370

帖子

2

粉丝