if (pkt_in)
{
    asm("wdr");
    GICR &= ~_BV(INT2); // 进入临界区之前必须关网卡中断!
    read_packet();
    ENC28J60_SelectBank(1);
    if (!ENC28J60_Read(EPKTCNT)) // 若已接收完全部数据包
    {
        pkt_in = 0;
        ENC28J60_SetBits(EIE, EIE_PKTIE, ENCSET); // 则重开数据包接收中断
    }
    GICR |= _BV(INT2); // 重开网卡中断
}
在上面的代码中,当pkt_in等于0时若中断PKTIE处于关闭状态,就会发生死锁。