LINUX.ORG.RU

Сообщения elbondyto

 

Работа с ASN.1 PER

Форум — Development

Добрый день! Посоветуйте пожалуйста библиотеку работы с ASN.1 и кодированием PER на Си или С++. Желательно для Embedded-систем.

 , , ,

elbondyto
()

Изменение размера буфера ввода/вывода через консоль

Форум — Development

Как изменить размер буфера ввода/вывода из консоли. Нагуглил, что можно поменять размер с помощью системного вызова ioctl() с параметрами TXSETIHOG/TXSETOHOG, но как это сделать в скрипте?

PS Заранее спасибо за ответ

 ,

elbondyto
()

Работа с SPI через ioctl

Форум — Development

Привет всем! Сейчас работаю с SPI на процессоре iMX536. Не получается отправить сообщение через ioctl. Выдаётся ошибка: ioctl error: Bad address. Помогите разобраться или подскажите куда копать. И ещё вопрос: через ioctl SPI работает full-duplex? Заранее спасибо за ответы.

 int main(int argc, char **argv)
 {
         int fd = 0;
         char buff[32];
         char rbuff[32];  
 
         fd = open(PATH, O_RDWR, 0);
         if (fd == -1) {
                 perror("open error");
         }
  
         ioc_transfer.tx_buf        = (unsigned long)buff;
         ioc_transfer.rx_buf        = (unsigned long)rbuff;
         ioc_transfer.len           = 32;
         ioc_transfer.delay_usecs   = 0;
         ioc_transfer.speed_hz      = 1000000;
         ioc_transfer.cs_change     = 1;
         ioc_transfer.bits_per_word = 8;
 
         for(;;) {
                 int ret = ioctl(fd, SPI_IOC_MESSAGE(1), &ioc_transfer);
                 if (ret == -1) {
                         perror("ioctl error");
                         return -1;
                 }
 
                 usleep(1000000 / send_pack_freq);
         }
 
         return 0;
}

PS Всем хороших выходных)))

 , ,

elbondyto
()

request_irq безвозвратно переходит в состояния sleep

Форум — Development

При вызове: request_irq(irq_num, (irq_handler_t)gpio_irq_handler, 0, «irq», NULL); функция переходит в состояние sleep, и не возвращается из него. Я прочитал, что внутри вызывается функция kmalloc(), которая и блокируется, пока не выделится память, но память, видимо, так и не выделяется. С чем это может быть связано?

 , , ,

elbondyto
()

Клиент-сервер TCP и несколько потоков.

Форум — Development

Есть TCP клиент, к коду которого не имею доступ, и есть TCP сервер, мною написанный. Клиент отлично подключается к серверу, теперь серверу надо отослать(send()) клиенту некую информацию. Вопрос таков: допустим я открываю на сервере слушающий TCP сокет в одном потоке, и устанавливаю связь(accept()) в этом же потоке, а отсылать информацию буду в другом. Может такое сработать или другой поток будет иметь другой набор дескрипторов и ничего не получится? И если ответ на первый вопрос отрицательный, то почему всё же при отправке(send()) из другого потока функция send не вернёт ошибку?

Я уже такое провернул, и клиент ничего не получил, а если посылаю из того же потока, то клиент получает. Самое интересное то, что в обоих случаях я отлавливаю пакет с помощью tcpdump, и они оба содержат правильный адрес получателя. Ещё один вопрос: почему всё же не доходит, даже с правильным адресом?

 ,

elbondyto
()

Как успеть обработать сообщение от ttyS1?

Форум — Development

Есть программа, которая общается по rs232 с внешним оборудованием через устройство /dev/ttyS1. Принцип общения довольно банальный, программа отсылает какое-то сообщение в /dev/ttyS1 и становится на приём(read()) отчёта по этому же устройству. Проблема в том, что иногда программа не успевает встать на приём, и сообщение с отчётом приходит раньше. Получается, что программа блокируется на функции read(). Вопрос, можно ли как-то буферизировать сообщения из /dev/ttyS1? Как вообще такие ситуации обрабатываются?

 ,

elbondyto
()

RSS подписка на новые темы