mini2440 RS-485 linux

Добрый день всем, мне необходимо использовать программное управление потоком RS485 в linux с помощью gpio, с самим gpio я разобрался, все проблема с включением кода управления ttys в ядро, в нем я нашел файлик /drivers/serial/serial_core.c, в нем функцию uart_write:


uart_write(struct tty_struct *tty, const unsigned char *buf, int count)
{
         struct uart_state *state = tty->driver_data;
         struct uart_port *port;
         struct circ_buf *circ;
         unsigned long flags;
         int c, ret = 0; 
         /*
          * This means you called this function _after_ the port was
          * closed.  No cookie for you.
          */
         if (!state) {
                 WARN_ON(1);
                 return -EL3HLT;
         }
 
         port = state->port;
         circ = &state->info.xmit;
 
         if (!circ->buf)
                 return 0;
 
         spin_lock_irqsave(&port->lock, flags);
         while (1) {
                 c = CIRC_SPACE_TO_END(circ->head, circ->tail, UART_XMIT_SIZE);
                 if (count < c)
                         c = count;
                 if (c <= 0)
                         break;
                 memcpy(circ->buf + circ->head, buf, c);
                 circ->head = (circ->head + c) & (UART_XMIT_SIZE - 1);
                 buf += c;
                 count -= c;
                 ret += c;
         }
         spin_unlock_irqrestore(&port->lock, flags);
 
         uart_start(tty);
         return ret;
 }

правильно ли я понимаю что если включить в нее дерганье gpio, можно получить управление потоком?
PS
Глупый вопрос: Как получить номер порта из структуры tty?
  • -1
  • 01 июля 2012, 18:33
  • rutcode

Комментарии (4)

RSS свернуть / развернуть
В линухе ничего не понимаю, но для RS-485 есть драйвер MAX13487/13488 не требующий дрыгания ногой на передачу проверено в нескольких платах и со встроенным бутлоадером STM32 — я писал об этом we.easyelectronics.ru/GYUR22/max13487-13488-vykinem-lishnee-iz-rs-485.html
0
Спасибо, я уже думал ядро ковырять…
0
Пожалуйста :)
зы вставьте а то код торчит в заголовках
0
съело «cut»
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.