STM32F4 Ethernet access after FLASH Erase
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 #stm32f4-flash-ethernet