- 论坛徽章:
- 0
|
本人在调试串口驱动时遇到这样的问题:
在串口接收数据部分:一收到数据就会产生中断,把字符存在变量ch中,然后调用tty_insert_flip_char(tty, ch, flg);这个函数把它存到内核的buffer,最后调用tty_flip_buffer_push(tty);应用层却得不到数据,为什么?
硬件方面是肯定没有问题的,打印变量ch的值就是我传输的值。请高手解答啊。
- static inline int tty_insert_flip_char(struct tty_struct *tty,
- 12 unsigned char ch, char flag)
- 13{
- 14 struct tty_buffer *tb = tty->buf.tail;
- 15 if (tb && tb->active && tb->used < tb->size) {
- 16 tb->flag_buf_ptr[tb->used] = flag;
- 17 tb->char_buf_ptr[tb->used++] = ch;
- 18 return 1;
- 19 }
- 20 return tty_insert_flip_string_flags(tty, &ch, &flag, 1);
- 21}
复制代码
|
|