AnsweredAssumed Answered

STM32F4 Ethernet access after FLASH Erase

Question asked by parker.clinton on Aug 27, 2014
Latest reply on Aug 28, 2014 by parker.clinton
I have a project that needs to erase FLASH sectors so that configuration data can be updated. The device is being accessed via ethernet. In the past, I was just polling the DMA status to access an incoming packet. This was all working. I just changed the code to use the ethernet interrupt to queue packets as they are received. This also is working with the exception of when I erase the FLASH. After the erase, either packets are not received or are received with a large delay (> 0.5 seconds). I have tried disabling both the ethernet DMA interrupt (DMAIER) and/or the NVIC ETH_IRQn, but neither solve the problem.

Before the erase: DMASR = 0x00660404, DMAIER -> 0x000000000
After the erase: DMASR = 0x006804C4 (if packet receieved) and DMAIER -> 0x000100040

I have tried resetting the DMA buffers/status after the erase, but this also has had no effect.

The code to erase the FLASH is in FLASH, but a different sector from the one being erased.

Again, all of this was/is working if I don't set up an interrupt to queue the incoming packets, but manually poll the DMA status to queue them.

Thanks for any help.

- Clint

Outcomes