ISR по определению выполняются в пространстве ядра. Если вы не находитесь во встроенной системе без защиты памяти, вам нужно будет добавить код ядра в ваш проект. Кроме того, чтобы переопределить recv
, ему потребуется обрабатывать IP и TCP или UDP по мере необходимости для извлечения данных из пакетов Ethernet.
Затраты на перепланирование и переключение на поток минимальны и должны произойти в любом случае, если пакет полностью не обработан в ядре. Большинство операционных систем имеют настройку потока с наивысшим приоритетом, иногда называемую «в реальном времени», которая заставляет код пользовательского пространства запускаться с минимальной задержкой после получения драйвером данных. Это часто используется для ввода / вывода аудио / видео, а также для работы в сети.