jenya7 0 26 ноября, 2019 Опубликовано 26 ноября, 2019 (изменено) · Жалоба 1 hour ago, aaarrr said: А вот это у всех SoC'ов на свой лад. Проверьте утилитами из комплекта libgpiod и осциллографом/вольтметром/светодиодом. понял. еще вопрос - я правильно понимаю что настроить пин как вход это - gpiod_line_request_output(line, ''out3'', 0); кстати line = gpiod_chip_get_line(chip, X) = BCMX Изменено 26 ноября, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 26 ноября, 2019 Опубликовано 26 ноября, 2019 · Жалоба https://framagit.org/cpb/example-programs-using-libgpiod Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 26 ноября, 2019 Опубликовано 26 ноября, 2019 · Жалоба 6 minutes ago, x893 said: https://framagit.org/cpb/example-programs-using-libgpiod спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 27 ноября, 2019 Опубликовано 27 ноября, 2019 (изменено) · Жалоба вобщем UDP и SPI работают. непонятки только с UART. по аналогии с SPI открываю дескриптор file = open("/dev/serial0", O_RDWR); (я тут не уверен serial0 или ttyAMA0) Но с посылкой\приемом непонятно. в SPI void SPI_Xfer(uint8_t opcode, uint16_t addr, uint16_t val) { int status; spi_buff_tx[0] = opcode; spi_buff_tx[1] = addr >> 8; spi_buff_tx[2] = addr & 0xFF; spi_buff_tx[3] = val >> 8; spi_buff_tx[4] = val & 0xFF; xfer[0].len = 5; xfer[0].tx_buf = (unsigned long)spi_buff_tx; xfer[1].len = 5; xfer[1].rx_buf = (unsigned long)spi_buff_rx; status = ioctl(file, SPI_IOC_MESSAGE(1), xfer); if (status < 0) { perror("SPI IOC Failed\n"); } } а с UART как? Изменено 27 ноября, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 3 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба #include <termios.h> struct termios olopts,ntopts; fd = open(dev,OPEN_FLAGS); tcgetattr(fd,&oldopts); memset(&ntopts,0,sizeof(ntopts)); cfsetospeed(&ntopts,speed); cfsetispeed(&ntopts,speed); ntopts.c_cflag |= CS7|CLOCAL|CREAD; ntopts.c_iflag |= IGNPAR|IGNCR; ntopts.c_oflag |= OCRNL; ntopts.c_lflag |= ICANON; ntopts.c_cc[VMIN] = 1; ntopts.c_cc[VEOF] = 4; tcflush(fd,TCIFLUSH); tcsetattr(fd,TCSANOW,&ntopts); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба 29 minutes ago, gosha-z said: #include <termios.h> struct termios olopts,ntopts; fd = open(dev,OPEN_FLAGS); tcgetattr(fd,&oldopts); memset(&ntopts,0,sizeof(ntopts)); cfsetospeed(&ntopts,speed); cfsetispeed(&ntopts,speed); ntopts.c_cflag |= CS7|CLOCAL|CREAD; ntopts.c_iflag |= IGNPAR|IGNCR; ntopts.c_oflag |= OCRNL; ntopts.c_lflag |= ICANON; ntopts.c_cc[VMIN] = 1; ntopts.c_cc[VEOF] = 4; tcflush(fd,TCIFLUSH); tcsetattr(fd,TCSANOW,&ntopts); спасибо. это я так понимаю настройка. а запись\чтение можно так? int count = write(fd, tx_buffer, len); read(fd, rx_buffer, len); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 3 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба 2 minutes ago, jenya7 said: а запись\чтение можно так? Вроде так. Чтение вроде через epoll() работает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба 4 minutes ago, gosha-z said: Вроде так. Чтение вроде через epoll() работает у меня тут вот какой вопрос возник - в SPI я обращаюсь через ioctl - ioctl(file, SPI_IOC_MESSAGE(1), xfer); но я так понимаю что можно обращаться к SPI через те же write, read. так же как и к UART через ioctl. А как лучше? Может я копаю слишком глубоко, просто как начинающий в линуксе хочу разобраться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба Quote Standard read() and write() operations are obviously only half-duplex, and the chipselect is deactivated between those operations. Full-duplex access, and composite operation without chipselect de-activation, is available using the SPI_IOC_MESSAGE(N) request. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 ноября, 2019 Опубликовано 28 ноября, 2019 (изменено) · Жалоба 10 minutes ago, aaarrr said: понял. спасибо. если я написал все на малине на стандартных write, read, ioctl и получил исполняемый файл - он запуститься на YOCTO? у меня там другой процесор. я правда писал на QT. возможно нужно ставить какой то ран тайм на целевую машину. Изменено 28 ноября, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба 31 minutes ago, jenya7 said: если я написал все на малине на стандартных write, read, ioctl и получил исполняемый файл - он запуститься на YOCTO? у меня там другой процесор. я правда писал на QT. возможно нужно ставить какой то ран тайм на целевую машину. Либы Qt нужны. А так запустится, если архитектура та же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба 5 minutes ago, aaarrr said: Либы Qt нужны. А так запустится, если архитектура та же. блин. я не могу поставить либы. этот YOCTO не знает apt-get. и еще половины команд Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба В Yocto их придется собрать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба 7 minutes ago, aaarrr said: В Yocto их придется собрать. а как? подскажите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 ноября, 2019 Опубликовано 28 ноября, 2019 · Жалоба 3 minutes ago, jenya7 said: а как? подскажите Увы, не подскажу, т.к. с Yocto не работаю (по мне, это тихий ужас). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться