mindee 感谢你的回答
那我现在如何让看门狗重启后,我的板子网络能通呢?
我看那个帖子的人说用IO复位。
我的想法是通过GPA15来控制DM9000软重启,有什么问题吗?或者软重启本身也不能解决这个问题?
void ResetNetWork() // reset network adapter by GPIO GPA15
{
volatile IOPreg *v_pIORegs;
v_pIORegs = (volatile IOPreg *)VirtualAlloc(0, sizeof(IOPreg), MEM_RESERVE, PAGE_NOACCESS);
if(v_pIORegs)
{
if(VirtualCopy((PVOID)v_pIORegs, (PVOID)IOP_BASE, sizeof(IOPreg), PAGE_READWRITE | PAGE_NOCACHE))
{
v_pIORegs->rGPACON |= 1<<15; //set the 15th bit value of GPACON to 1, then let nGCS[4] avail
v_pIORegs->rGPADAT |= 1; //combine GPADATA and 1 with a logical OR
Sleep(50);
v_pIORegs->rGPADAT &=0xFFFE;
}
VirtualFree((LPVOID)v_pIORegs, 0, MEM_RELEASE);
v_pIORegs = NULL;
}
}