天线|RF射频
直播中

何夏庄

8年用户 1057经验值
私信 关注
[问答]

lwip移植时去掉DM9000的硬件复位后不能正确移植

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

回帖(2)

林俭幼

2019-6-27 13:51:46
内存申请失败说明你内存不够啊。
举报

魏紫瑜

2019-6-27 14:11:34
是这个原因啊,谢谢。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分