|
发表于 2011-3-6 16:43:21
|
显示全部楼层
NIOS II IDE 8.0下软件还有BUG的,模板程序中的一个宏,htonl计算是不正确的,
#define IP4_ADDR(ipaddr, a,b,c,d) ipaddr = htonl(((alt_u32)(a & 0xff) << 24) | ((alt_u32)(b & 0xff) << 16) | ((alt_u32)(c & 0xff) << 8) | (alt_u32)(d & 0xff))
注意htonl是 转网络字节次序,既然已经在移位拼接了,为什么还要再用htonl来转字节次序,何不在程序中直接按网络字节次序写呢
修改后的:
#define IP4_ADDR(ipaddr, a,b,c,d) ipaddr = (((alt_u32)(a & 0xff)) | ((alt_u32)(b & 0xff) << 8) | ((alt_u32)(c & 0xff) << 16) | (alt_u32)(d & 0xff)<<24)。如果用NIOS II做网络都会遇到这个问题。 |
|