在移植LWIP的时候发现咱们库里面定义的最大ETH包长度是1536,但是根据注释计算是不对的,请问是怎么得到的1536这个值,如下图
热门产品 :
CH585: 集成高速USB和NFC的蓝牙MCU
在移植LWIP的时候发现咱们库里面定义的最大ETH包长度是1536,但是根据注释计算是不对的,请问是怎么得到的1536这个值,如下图
按照注释是1520。但为防止有某些不常用的字段会占用长度(比如VLAN标志会占用4字节,那么此时长度为1524)且因以太网底层接收是硬件处理,要保证字节对齐。有些mcu要求4字节对齐有些mcu要求16字节对齐,所以为了统一就直接设置成16字节地对齐,即这边定义为1536。
这样定义实际不会占用太多ram,如果ram资源紧张,可以改成4字节对齐,因为实际特殊字段用到的概率不大。如果没有其他特别需求,按照例程默认即可。
后续有其他问题可以邮件联系(邮箱:lq@wch.cn)