在这几天的调试过程中,出现了将APP层的数据传递到lwip的sendto()函数时,出现了传递后相关参数出现错位现象。后经细查,是因为定义结构体时,没有字节对齐,
struct stCmdHeader //ÃüÁîÍ·¸ñʽ
{
U16 SYNFLAG; //ͬ²½Í·£¬0XF0 0XA5
U32 Len; //ÃüÁ¶È×Ö½Ú£¬º¬Í·
BYTE FromDevID; //ÃüÁîÀ´Ô´
BYTE CmdCode; //ÃüÁîÂë
// U8 FromDevID; //ÃüÁîÀ´Ô´
// U8 CmdCode; //ÃüÁîÂë
U16 CMDCRC; //֡УÑé
};
后改成:
#pragma pack(1)
struct stCmdHeader //ÃüÁîÍ·¸ñʽ
{
U16 SYNFLAG; //ͬ²½Í·£¬0XF0 0XA5
U32 Len; //ÃüÁ¶È×Ö½Ú£¬º¬Í·
BYTE FromDevID; //ÃüÁîÀ´Ô´
BYTE CmdCode; //ÃüÁîÂë
// U8 FromDevID; //ÃüÁîÀ´Ô´
// U8 CmdCode; //ÃüÁîÂë
U16 CMDCRC; //֡УÑé
};
#pragma pack()
问题解决。