События распознавания движения акселерометра Linux IIO - PullRequest
0 голосов
/ 03 июля 2018

У меня акселерометр MMA8563 на плате imx6ul, и я использую драйвер Linux IIO mma8452.c. Я могу получить доступ к необработанным значениям x, y, z через / sys / bus / iio / devices / iio: device0.

Однако я не уверен, как использовать события IIO. Я настроил обнаружение движения в акселерометре, используя следующие команды:

# echo 15 > events/in_accel_mag_rising_value
# echo 1 > events/in_accel_mag_rising_period
# echo 1 > events/in_accel_x_mag_rising_en

Я поместил отладочные операторы печати в коде драйвера и вижу, что прерывание срабатывает при перемещении устройства. Я вижу, что драйвер затем вызывает функцию iio_push_event (). Я также вижу, что номер прерывания в / proc / interrupts увеличивается каждый раз, когда я перемещаю устройство.

Как я могу получить доступ к этому прерыванию или событию из пространства пользователя? Я хотел бы быть в состоянии сказать, когда устройство находится в движении.

Драйвер создает буфер и char dev в / dev / iio: device0, но, похоже, он заполняется только при включении x, y или z в каталоге scan_elements.

...