|
STM32H750芯片一直lwip, 使用netif_add_ext_callback注册回调监听网口的状态变化, 回调中输出的netif->flags参数一直是0不会变化, 但是在netif_invoke_ext_callback函数前后打印flags的参数是有变化的, 并且 netif 指针指向的地址都是同一个地址, 输出的值却不相同
// 注册回调函数如下
void NetStatusCallback(struct netif *netif, netif_nsc_reason_t reason, const netif_ext_callback_args_t *args)
{
struct netif *netifFind = netif_find("st0");
if (netif != NULL) {
printf("==Test== NetStatusCallback netif = 0x%x, netif->flags = 0x%x, netifFind = 0x%x, netifFind->flags = 0x%x, flags_copy = 0x%x\r\n",
netif, netif->flags, netifFind, netifFind->flags);
} else {
printf("==Test== NetStatusCallback netif is NULL\r\n");
}
}
NETIF_DECLARE_EXT_CALLBACK(netifCallback);
netif_add_ext_callback(&netifCallback, NetStatusCallback);
日志如下:
netif_invoke_ext_callback: callback = 0xc00375e1, netif = 0x2400fc00, netif->flags = 0x2f
==Test== NetStatusCallback netif = 0x2400fc00, netif->flags = 0x0
==Test== netif_invoke_ext_callback inner: callback = 0xc00375e1, netif = 0x2400fc00, netif->flags = 0x2f
|
|