STM32F429 Ethernet crash
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-05-09 5:34 PM
I use STM32F429, refer to en. Stsw-stm32070 source code, remove lwip, only Ethernet data transceiver, found a long time communication, Ethernet will crash, mainly set TBUS, RBUS, RS, ETS。But I used the following code in the interrupt, and it could not be restored. The program has been in the Ethernet interrupt state, so the data could not be sent or received. How to solve this problem
if (ETH->DMASR & INT_RBUIE)
{
/* Receive buffer unavailable, resume DMA */
ETH->DMASR = ETH_DMASR_RBUS;
ETH->DMARPDR = 0;
}
if (ETH->DMASR & INT_TBUIE)
{
/* Receive buffer unavailable, resume DMA */
ETH->DMASR = ETH_DMASR_TBUS;
ETH->DMATPDR = 0;
}
ETH->DMASR = ETH_DMASR_NIS | ETH_DMASR_AIS;
- Labels:
-
Ethernet
-
SPL
-
STM32F4 Series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-05-14 12:45 PM
When ethernetif_input() gets semaphore, it calls low_level_input() only once, but it should loop while unprocessed frames are available.
