求助:关于Lwip协议栈移植的请教--关于包结构字节对齐的问题
各位大虾,大家好。我在移植协议栈的时候,经常碰到一些莫名其妙的错误,比如说访问下面结构体中的 dipaddr 导致死机的问题(ip_addr_set(&(hdr-> dipaddr), ipaddr);),但实际上我已经使用了__packed 声明是字节对齐的咯,可在访问的时候还是有异常产生。
如果使用临时变量,通过内存拷贝可以解决该问题。真是比较怪啊:) 不知与我使用的芯片有没有关系(S3C44b0X)。
QQ:380920089
PACK_STRUCT_BEGIN
/** the ARP message */
struct etharp_hdr {
PACK_STRUCT_FIELD(struct eth_hdr ethhdr);
PACK_STRUCT_FIELD(u16_t hwtype);
PACK_STRUCT_FIELD(u16_t proto);
PACK_STRUCT_FIELD(u16_t _hwlen_protolen);
PACK_STRUCT_FIELD(u16_t opcode);
PACK_STRUCT_FIELD(struct eth_addr shwaddr);
PACK_STRUCT_FIELD(struct ip_addr sipaddr);
PACK_STRUCT_FIELD(struct eth_addr dhwaddr);
PACK_STRUCT_FIELD(struct ip_addr dipaddr);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
发表时间:2005年11月27日20:03:44