Работа с ASN.1 PER
Добрый день! Посоветуйте пожалуйста библиотеку работы с ASN.1 и кодированием PER на Си или С++. Желательно для Embedded-систем.
Добрый день! Посоветуйте пожалуйста библиотеку работы с ASN.1 и кодированием PER на Си или С++. Желательно для Embedded-систем.
Как изменить размер буфера ввода/вывода из консоли. Нагуглил, что можно поменять размер с помощью системного вызова ioctl() с параметрами TXSETIHOG/TXSETOHOG, но как это сделать в скрипте?
PS Заранее спасибо за ответ
Привет всем! Сейчас работаю с 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 Всем хороших выходных)))
При вызове: request_irq(irq_num, (irq_handler_t)gpio_irq_handler, 0, «irq», NULL); функция переходит в состояние sleep, и не возвращается из него. Я прочитал, что внутри вызывается функция kmalloc(), которая и блокируется, пока не выделится память, но память, видимо, так и не выделяется. С чем это может быть связано?
Есть TCP клиент, к коду которого не имею доступ, и есть TCP сервер, мною написанный. Клиент отлично подключается к серверу, теперь серверу надо отослать(send()) клиенту некую информацию. Вопрос таков: допустим я открываю на сервере слушающий TCP сокет в одном потоке, и устанавливаю связь(accept()) в этом же потоке, а отсылать информацию буду в другом. Может такое сработать или другой поток будет иметь другой набор дескрипторов и ничего не получится? И если ответ на первый вопрос отрицательный, то почему всё же при отправке(send()) из другого потока функция send не вернёт ошибку?
Я уже такое провернул, и клиент ничего не получил, а если посылаю из того же потока, то клиент получает. Самое интересное то, что в обоих случаях я отлавливаю пакет с помощью tcpdump, и они оба содержат правильный адрес получателя. Ещё один вопрос: почему всё же не доходит, даже с правильным адресом?
Есть программа, которая общается по rs232 с внешним оборудованием через устройство /dev/ttyS1. Принцип общения довольно банальный, программа отсылает какое-то сообщение в /dev/ttyS1 и становится на приём(read()) отчёта по этому же устройству. Проблема в том, что иногда программа не успевает встать на приём, и сообщение с отчётом приходит раньше. Получается, что программа блокируется на функции read(). Вопрос, можно ли как-то буферизировать сообщения из /dev/ttyS1? Как вообще такие ситуации обрабатываются?