Я работаю над написанием кода, который использует функции Linux ioctl (…) для связи с интерфейсом SPI.
Недавно я пытался дойти до нашего «типичного» варианта использования передачи (примерно 500 КБ массовой передачи) и получил ошибку «errno 90» (EMSGSIZE). Копаясь в spidev.c, есть «bufsiz», установленный на максимальный 4096 байтов в передаче (или передачах).
Я вижу возможность изменить bufsiz, записав новое значение в «/ sys / module / spidev / parameters / bufsiz», и это нормально, но я сомневаюсь, что это позволит мне произвольно расширить это.
Но: есть ли способ проверить этот параметр из моего кода пользовательского пространства (кроме чтения вышеуказанного файла)?
Поэтому мне нужно иметь возможность адаптировать свой код tx / rx к любому заданному текущему максимальному размеру буфера, независимо от того, изменил ли он мой код или нет, но это довольно сложно сделать, не имея возможности запрашивать значение из моего кода.
Похоже, что ДОЛЖЕН быть простой способ получить это значение с помощью некоторого библиотечного вызова.
Задача ещё не решена.