1.平常我们都是用串口的方式通过rt-thread的finish来调试,但是在遇到串口不够用或者板子没有焊串口。我们就需要通过网络+finish的方式来调试板子。但是在调试板子的时候发现通过通过TCP连接方式调用list_if()的时候,网络出现挂掉。现像是ping不通。
2.原因分析:后面查看list_if()的代码发现有这么一个代码:
void list_if(void)
{
rt_ubase_t index;
struct netif * netif;
//rt_enter_critical();//进入临界断,调用锁
netif = netif_list;
while( netif != RT_NULL )
{
rt_kprintf("network interface: %c%c%s\n",
netif->name[0],
netif->name[1],
(netif == netif_default)?" (Default)":"");
rt_kprintf("MTU: %d\n", netif->mtu);
rt_kprintf("MAC: ");
for (index = 0; index < netif->hwaddr_len; index ++)
rt_kprintf("%02x ", netif->hwaddr[index]);