2

Это мой первый вопрос о переполнении stackoverflow, хотя я постоянно читаю этот источник проблем.Как ввод, полученный SPI, может быть интерпретирован Android

Во всяком случае, это вопрос я столкнулся:

Я пытаюсь соединить с шиной SPI два evalboards:

  • Первый (источник данных) имитирует сенсорный экран и это дистрибутив Linux (на данный момент: Raspbian).
  • Второй - это встроенный Android.

Я хотел бы соединить эти два, SPI и отправить с Linux один для Android сенсорных последовательностей (в соответствии с мультисенсорным протоколом (https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt)). spidev включен, но я не знаю, как «выполнить» приказы, которые я получу.

Из того, что я вижу: я не могу использовать устройства ввода Android (https://source.android.com/devices/input/input-device-configuration-files.html), потому что он не может полагаться на связь SPI. Должен ли я создать драйвер в ядре linux? Какова «наилучшая практика» в этой конкретной ситуации?

Спасибо заранее, вы можете экономить интернатуру :)

ответ

1

Если ядро ​​Android Linux настроен выставить/DEV/spidev (или вы можете установить, что в ядре), вы не имеете для создания модуля ядра Linux. Вы можете получить доступ к/dev/spidev из Android, написав обертку NDK в c/C++. Я сделал это, и он работает. Я бы предположил, что вы начинаете с написания небольшой c-программы, которая настраивает и открывает канал sp/dev/dev/spidev, и отправляет/получает некоторые тестовые данные. Когда это будет выполнено, перепишите c-программу в библиотеку обложек NDK, которую вы можете получить из программы Android.

Это предполагает, что приложение для Android - это тот, который вы пишете сами. Если вы хотите сделать touch-события доступными для Android в целом, я думаю, вам нужно написать сенсорный драйвер в качестве модуля ядра.

+0

Привет, спасибо за ваш ответ! На самом деле мне нужно сделать доступными для Android сенсорные события в целом для проекта. Поэтому я должен сделать это как модуль ядра, спасибо за вашу помощь! – GautierD