Я работаю над ARM-системой под управлением встроенного Linux. Я читаю данные с двух инерциальных датчиков через i2c (используя процедуры SMBUS) на частоте 100 Гц (12 показаний каждые 10 мс) с помощью программы для пользовательского пространства, которую я написал.
Я вижу запуск "top" и исключая некоторые части моего кода, что основная часть моей вычислительной нагрузки связана с функциями i2c (около 90% от общей загрузки ЦП в 30%, указанной моим программным обеспечением).
Если бы я использовал какой-либо драйвер (пространство ядра) для чтения этих данных, как вы думаете, вычислительная нагрузка останется неизменной, будет рассматриваться только под другим именем или фактически уменьшится из-за какой-то оптимизации системы?