Нет вывода из вывода устройства IIO (символьного) - буфер IIO

Я работаю над драйвером Linux для ADC ADS1243 и использую платформу IIO. Я хочу добавить функцию для чтения и хранения данных из АЦП в буфер IIO.

Я добавил iio_triggered_buffer_setup() для проверки функции драйвера.

ret = iio_triggered_buffer_setup(indio_dev, NULL, &ads1243_trigger_handler, NULL);

Я использую триггер sysfs и ads1243_trigger_handler успешно называется.

static irqreturn_t ads1243_trigger_handler(int irq, void *p)
{
    struct iio_poll_func *pf = p;
    struct iio_dev *indio_dev = pf->indio_dev;
    struct ads1243_state *st = iio_priv(indio_dev);
    u32 val[8];
    int ret;

    val[0] = 0x01;
    val[1] = 0x02;
    val[2] = 0x03;
    val[3] = 0x04;

    ret = iio_push_to_buffers_with_timestamp(indio_dev, val,
                                       iio_get_time_ns());
    /* iio_push_to_buffers(indio_dev, val); */

    iio_trigger_notify_done(indio_dev->trig);

    return IRQ_HANDLED;

}

В обработчике я использую только некоторые тестовые данные, помещенные в буфер iio.

Затем я установил триггер

echo 0 > iio_sysfs_trigger/add_trigger
cat /sys/bus/iio/devices/trigger0/name > /sys/bus/iio/devices/iio:device1/trigger/current_trigger

включить некоторые элементы сканирования, настроить и включить буфер для устройства iio

echo 1 > scan_elements/in_voltage0-voltage1_en
echo 1 > scan_elements/in_voltage2-voltage3_en

echo 64 > buffer/length
echo 1 > buffer/enable

Запустите курок

echo 1 > /sys/bus/iio/devices/trigger0/trigger_now

а затем попробуйте прочитать устройство (буфер)

cat /dev/iio\:device1

Но у меня нет выхода. Я что-то упустил?

Спасибо за ответ!

1 ответ

Решение

Код правильный и работает. Я тупой - я не понимал, что команда cat не будет печатать невидимых символов!

Используйте скорее hexdump например..

Другие вопросы по тегам