节。
你可以通过定义LWIP_CHKSUM_ALGORITHM的值来选择相应的算法(比如#define LWIP_CHKSUM_ALGORITHM 2来选择算法2)。
你还可以使用你自己编写的校验和程序(比如,使用汇编来加32位的数据并带有进位)。
u16_t my_chksum(void *dataptr, u16_t len);
#define LWIP_CHKSUM my_chksum
结构的封装
lwIP会访问16或32位的协议头数据,该数据在内存中可能是非对齐的。如果你的处理器不能从非对齐的地址进行读和写,那么你需要告诉你的编译器该数据是非对齐的并且编译器必须产生多余的字节或字来加载/存储访问它。在所有的协议结构体中,16/32位的值都是16位对齐的,因此选择2字节对齐是安全的。通常当使用以太网接口时,数据是4字节来对齐的(MEM_ALIGMENT=4)。以太网头(不包含VLAN)是14个字节,那么你应该/必须设置ETH_PAD_SIZE的值为2,因此IP头和更高层数据都是4字节对齐的,这样你就不需要再封装了。
在任何情况下,为了使系统运行稳定,你可以设置结构的封装的值不同于1!
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LwIP Platform Developers Manual 中文翻译(8)在线全文阅读。
相关推荐: