初级会员

- 积分
- 194
- 金钱
- 194
- 注册时间
- 2016-12-14
- 在线时间
- 37 小时
|
一开始是想要移植UIP,但是买了网络模块之后发现找到的试验代码不适用于mini板+ENC28J60网络模块,后面在光盘资料找到“网络实验5 RAW_TCP服务器实验”,开发板调通。测试正常。
现在移植到自己主板上,更改SPI1为SPI2,SPI引脚初始化更改,网卡的INT脚+REST脚更改。调试时发现无法连接,连接方式是电脑与主板直连。跟踪调试发现程序死在dhcp_start(&lwip_netif); //开启DHCP服务 中的
[mw_shl_code=c,true]
/* no DHCP client attached yet? */
if (dhcp == NULL)
{
LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): starting new DHCP client\n"));
dhcp = (struct dhcp *)mem_malloc(sizeof(struct dhcp));
if (dhcp == NULL)
{
LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): could not allocate dhcp\n"));
return ERR_MEM;
}
[/mw_shl_code]
进入这个判断后一直在SPI1_ReadWriteByte(u8 TxData)中循环
对比硬件后发现,开发板中使用PC4为NRF CS,连接ENC28J60的 NET CS脚,PA4为NRF CE,连接ENC28J60的NET RST脚。自己主板中使用PB12为NET CS,连接ENC28J60的NET CS脚,PA12为NET RST,连接ENC28J60的RST脚。
想问一下SPI2的NSS脚作为NET CS脚有没有问题,会不会导致上面出现的问题
如果不是的话,移植LWIP除了更改IO口之外还要配置哪些?
|
|