lwip 数据发送函数调用关系


lwip 中udp 和 tcp 发送函数,调用关系简图


lwip-send

low_level_output 函数是lwip 移植时自己实现,负责 链路层数据 发送。

STM32 上面的实现示例

static err_t low_level_output(struct netif *netif, struct pbuf *p)
{
     struct pbuf *q;
     int len = 0;
     u8 *buffer =  (u8 *)ETH_GetCurrentTxBuffer();

    for(q = p; q != NULL; q = q->next)
     {
         memcpy((u8_t*)&buffer[len], q->payload, q->len);
         len = len + q->len;
     }

    ETH_TxPkt_ChainMode(len);

    return ERR_OK;
}


low_level_ouput 发送的是 以太网链路层的数据包,包含 DST MAC 地址。即下面的包

1644303758(1)

posted @ 2022-02-08 15:03  张志伟122  阅读(624)  评论(0编辑  收藏  举报