各位前辈好!
小弟最近将一个在GD32F107+FreeRTOS+Lwip+LAN8720的工程移植到神舟IV开发版上的STM32F107+DM9161上,
因为不熟悉不敢贸然前进,我先是将与Ethernet有关的函数都用#if 0给注释掉,然后在初始化的Ethernet_Security函数中将重映射的引脚给重新配置了,配置后可以将DM9161的ID读出来,应该说明外设IO配置应该是没错的,接着便是将low_level_init中的#if 0注释去掉,当去掉注释时,程序直接不执行进入hardfault错误,如下图
但是只要将
ETH_DMATxDescChainInit((void *) &xTxDescriptor, (void *) ucMACBuffers, 1);
ETH_DMARxDescChainInit(xRxDescriptors, (void *) ucMACBuffers, NUM_RX_DESCRIPTORS);
注释掉就不会出现hardfault错误!
上面这两句话不是指定DMA缓存地址的吗?小弟初次接触Lwip+Ethernet这块,求指导
|