https://bbs.elecfans.com/file://C:%5CUsers%5Chuang%5CAppData%5CRoaming%5CTencent%5CUsers%5C416936608%5CQQ%5CWinTemp%5CRichOle%5CH3JTESD_3%7BEIY%F7JH31AX3.png我读lwip初始化函数的返回值显示的是内存申请失败。这是为什么呢。
还有就是,如果不是用PD7作为硬件重置的输出,而是直接与重置
电路的RESET信号相连,这里重置的代码应该如何修改。
void DM9000_Reset(void)
{
DM9000_RST = 0;//DM9000硬件复位
delay_ms(10);
DM9000_RST = 1; //DM9000硬件复位结束
delay_ms(100);//一定要有这个延时,让DM9000准备就绪!
DM9000_WriteReg(DM9000_GPCR,0x01);//第一步:设置GPCR寄存器(0X1E)的bit0为1
DM9000_WriteReg(DM9000_GPR,0);//第二步:设置GPR寄存器(0X1F)的bit1为0,DM9000内部的PHY上电
DM9000_WriteReg(DM9000_NCR,(0x02|NCR_RST));//第三步:软件复位DM9000
do
{
delay_ms(25);
}while(DM9000_ReadReg(DM9000_NCR)&1);//等待DM9000软复位完成
DM9000_WriteReg(DM9000_NCR,0);
DM9000_WriteReg(DM9000_NCR,(0x02|NCR_RST));//DM9000第二次软复位
do
{
delay_ms(25);
}while (DM9000_ReadReg(DM9000_NCR)&1);
}
https://bbs.elecfans.com/file://C:%5CUsers%5Chuang%5CAppData%5CRoaming%5CTencent%5CUsers%5C416936608%5CQQ%5CWinTemp%5CRichOle%5CH3JTESD_3%7BEIY%F7JH31AX3.png