Что такое «Прерывание ранней передачи» в регистре состояния STM32F4x Ethernet MAC DMA? - PullRequest
0 голосов
/ 25 марта 2019

Мой FreeRTOS Драйвер Ethernet на моей плате STM32F4x выскакивает много слов " Раннее прерывание передачи ". Я не нашел объяснения этому «ненормальному» прерыванию, несмотря на:

Указывает, что передаваемый пакет был полностью передан в ФИФО

Так в чем проблема? Похоже, все идет хорошо. Что это значит?

Лист данных STM32F401xx :

Регистр состояния Ethernet DMA ( ETH_DMASR ) p.1228

  • БИТ 10 ETS : статус ранней передачи

Регистр разрешения прерываний Ethernet DMA ( ETH_DMAIER ) стр.1233

  • БИТ 10 ETIE : раннее разрешение прерывания передачи

1 Ответ

2 голосов
/ 27 марта 2019

Таблица данных Контроллер Ethernet 10/100 PCI STE10 / 100A дает хорошее описание того, что происходит.

Transmit early interrupt scheme

Как показано на этой схеме, на TX возможны два прерывания:

  1. Обычное прерывание передачи (TS: бит 0) (суммируется среди "нормальных прерываний").

Этот бит указывает, что передача кадра завершена.

  1. Прерывание ранней передачи (ETS: бит 10) (суммировано среди "ненормальных прерываний").

Этот бит указывает, что передаваемый кадр полностью передан в FIFO передачи. Это первый шаг в процессе передачи.


  • Второй (ETS) просто позволяет хосту обнаруживать и предотвратить недогрузку на TX. Это довольно размытое название для простой трюк.
  • Кроме того, этот случай может возникать в «нормальных» ситуациях, когда передается только один кадр <1500 байт. </li>
...