Цитата(khach @ Oct 30 2017, 15:02)

Ну у нас же управление движением, по сети идут не только пакеты задания скорости, но и пакеты положения с оптических линеек ( обычно это отдельное устройство со своим адресом).
Ну это у вас. Непонятно только - зачем вы тогда так сделали?
У нас, например, по Ethernet осуществляется только конфигурирование. Да в будущем будет осуществляться мониторинг возможно.
А задание скорости, передача положения угла ротора и др. критичные по времени операции - по специально для этого выделенным интерфейсам (даже не по общему CAN-у).
Цитата(khach @ Oct 30 2017, 15:02)

А прерывания от ДМА по окончанию приема пакета могут перегрузить например прерывания управлени ШИМ BLDC мотора совсем уж с грустными последствиями
Не могут в принципе. Прерывания по завершению DMA генерятся когда принят очередной пакет DMA. Который в свою очередь может быть принят только если есть свободное место в очереди DMA-пакетов. А это свободное место появляется только в случае обработки и удаления из очереди одного из пакетов
низкоприоритетной задачей TCP-стека.
Более того - после обработки очередного RX-пакета, прерывание о завершении RX-DMA следующего пакета может генериться только
одно, а на следующие пакеты прерывания генериться не будут, до момента удаления из очереди RX-DMA-пакетов хотя-бы одного пакета задачей TCP-стека.
Т.е. - всё завязано на низкоприоритетную задачу TCP-стека и всё что выше её по приоритету будет работать независимо от её загрузки.
Да и мест пакетов в очереди RX-DMA немного - у меня всего-то их 5 в цепочке.
Если свободного места в очереди RX-DMA пакетов нет, то очередной пакет будет потерян. И выставится флажок о его потере в соотв. регистре контроллера Ethernet.
Цитата(khach @ Oct 30 2017, 15:02)

и со шпинделя скорость и позицию считать.
В текущей задаче у нас считывание и вычисление позиции ротора занимает ~340 тактов CPU. Это вместе с фильтрацией, коррекцией нелинейности, вычислением скоростей и т.п.
С ресольвера или синус-косинусных датчиков. Это на частоте >100 МГц сущие копейки...
Вычисляем её каждый период ШИМ 10кГц.