posix — Как открыть устройство ttyMFD на Intel-Edison [C ++]?

у меня есть /dev/ttyUSB устройство и /dev/ttyMFD устройство, которое мне нужно для потоковой передачи в лог-файлы. Для устройства USB я мог бы использовать termios и настроить его через это. Это было довольно просто, и для этого тоже было немного документации.

Я не могу найти что-нибудь для МФД, хотя. В некоторых местах это называется MultiFuctionDevice, а в других это называется высокоскоростным устройством UART Medfield.
Что правильно в первую очередь?

И во-вторых, могу ли я открыть его так же, как я открываю обычное устройство ttyUSB?

Вот фрагмент кода, который я использую для открытия USB-устройств.

int fd = open(USBDEVICE0, O_RDWR);struct termios io;
memset(&io, 0, sizeof(io));

io.c_iflag = 0;
io.c_oflag = 0;
io.c_cflag = CS8|CREAD|CLOCAL;           // 8n1, see termios.h for more information
io.c_lflag = 0;

// TODO -- Since we are operating in non-blocking mode; confirm VMIN and VTIME settings have no effect on duration of the read() call.

io.c_cc[VMIN] = 1;
io.c_cc[VTIME] = 5;

speed_t speedSymbol = B921600;

cfsetospeed(&io, speedSymbol);
cfsetispeed(&io, speedSymbol);int retVal;
retVal = tcsetattr(fd, TCSANOW, &io);

tcflush(fd, TCIOFLUSH);
usleep(100);

РЕДАКТИРОВАТЬ

Для всех, кто сталкивается с этим, есть одна оговорка. Вы должны открыть устройство в режиме raw и выгрузить все в файл журнала. Разбор должен быть сделан пост. Все получится как необработанные данные, но если вы попытаетесь выполнить какую-либо конфигурацию, буфер устройств не сможет захватить все данные, удержать их и обработать вовремя, прежде чем появятся новые данные.

1

Решение

MFD в ядре Linux это обычное сокращение Многофункциональное устройство, Устаревший серийный драйвер для Edison злоупотребляет этим и использует свою собственную интерпретацию, как вы упомянули: Medfield. В вышестоящем ядре сокращение MID используется в отношении Мобильное интернет-устройство. В частности серийный драйвер называется Драйверы / TTY / последовательный / 8250_mid.c. Увидеть https://en.wikipedia.org/wiki/Mobile_Internet_device.

Да, вы можете выполнять те же операции, что и над / DEV / ttyUSBx.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]