
tty driver
文章平均质量分 84
shuai_wen
这个作者很懒,什么都没留下…
展开
-
tty driver(1)
tty 子系统由那些文件组成?/*******************************************************************************/all the head file about tty.include/linux/tty*.h tty_flip.h tty.h tty_ldisc.htty_dr原创 2013-07-19 15:20:13 · 1125 阅读 · 0 评论 -
tty driver(2)
how to initialize the tty subsystem ?1.chr_dev_init -> tty_init这个必须的?什么用途?fs_initcall(chr_dev_init);chr_dev_init -> tty_initint __init tty_init(void){ cdev_init(&tty_cdev, &tty_fops);原创 2013-07-19 16:24:25 · 1665 阅读 · 0 评论 -
smd driver of msm
/**********************************************************************/arch/arm/mach-msm/smd.cmodule_init(msm_smd_init);static struct platform_driver msm_smd_driver = { .probe = msm_smd_原创 2013-10-15 09:27:09 · 2224 阅读 · 0 评论 -
BPlog通过ttySMD透传到PC遇到的问题及分析
引子:AP和BP通过shared memory相连,BP的log通过shared memory传输到AP,AP在通过USB把数据传输到PC,PC有软件实时接收分析数据。AP/BP间的通信机制是AP向memory1写,BP从memory1读;BP向memory2写,AP从memory2读。当AP向memory1写入数据时,会更改写指针变量,并发中断通知BP;BP根据读指针和写指针变量原创 2013-10-25 14:36:47 · 1270 阅读 · 0 评论 -
poll 系统调用(1)
1.用户空间/********************************************************************************** * include/asm-generic/poll.h * These are specified by iBCS2#define POLLIN 0x0001#define POL原创 2013-08-07 09:57:47 · 1585 阅读 · 0 评论 -
poll调用深入解析
poll调用和select调用实现的功能一样,都是网络IO利用的一种机制。先看一下poll的调用形式一,poll调用Cpp代码 #include int poll(struct pollfd fds[], nfds_t nfds, int timeout); struct pollfd结构如下:【在源码文件poll.h文件中】Cpp代码转载 2013-11-07 15:03:49 · 1174 阅读 · 0 评论 -
tty driver(5)
tty driver 读操作,这里缺张图:描述memory copy的过程,各个 memory copy 在那个函数中实现的。/***********************************************************************************/(一)数据从中断处理程序到tty_buffer/********************原创 2013-07-23 10:56:46 · 1731 阅读 · 1 评论 -
tty write return EAGAIN
/**************************************************************/EAGAIN是从哪里返回的?仔细debug一下,看系统函数哪里返回了这个值?应用程序的error number肯定是系统调用的返回值。fs/read_write.cSYSCALL_DEFINE3(write, unsigned int, fd, c原创 2013-11-12 13:51:16 · 1617 阅读 · 0 评论 -
tty driver(4)
tty 写操作流程1. tty_io 层/** * tty_write - write method for tty device file * @file: tty file pointer * @buf: user data to write * @count: bytes to write * @ppos:原创 2013-07-20 11:13:16 · 1179 阅读 · 0 评论 -
poll系统调用(2)
输入参数:poll(struct pollfd __user * ufds, unsigned int nfds,int timeout_msecs){ timeout_msecs的单位是msecs,?}SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds, in原创 2014-01-22 15:27:56 · 1144 阅读 · 0 评论 -
tty open failed
tty_open -> if (tty) { retval = tty_reopen(tty);} -> static int tty_reopen(struct tty_struct *tty){ struct tty_driver *driver = tty->driver; if (test_bit(TTY_CLOS原创 2014-01-28 15:56:45 · 1146 阅读 · 0 评论 -
tty上网行规的设置
/************************************************************************/目的AP/BP通过shared memory上网, shared memory虚拟成多个tty端口,通过其中一个tty端口上网,上网端口的行规设置为 N_PPP,在kernel一直没有找到哪里设置了这个行规。在哪里设置的哪?从系原创 2014-02-08 14:17:02 · 1968 阅读 · 0 评论 -
A soft watchdog of tty driver
引子:运行一个tty相关的应用程序,出现softlockup,有关软件看门狗的原理,看另一文章。有解决这个问题,有些信息是必须的:1.log 要打印出时间戳;2.判断是否死锁在某个信号量,或者说看某个进程卡在哪里不调度,ps -l可以看出没个进程的进入和退出时间,不知为什么不支持; 另外的方法,打开ftrace让它监测sched_switch 事件也是可以的。原创 2013-09-15 09:03:49 · 1486 阅读 · 0 评论 -
tty 的流控
1]有关写操作: 1.1如果上层使用poll系统调用监测写事件,就是知道什么时候可以进行写操作,tty必须实现的接口 其中有两个tty_ops write相关的函数,其中tty_chars_in_buffer是必须实现的 unsigned int n_tty_poll(struct tty_struct *tty, struct file *file, poll_ta原创 2013-08-13 10:30:34 · 3231 阅读 · 2 评论 -
有关tty hangup
调用函数tty_hangup触发work function do_tty_hangup的运行, 函数do_tty_hangup主要设置了filp->f_op = &hung_up_tty_fops;后面的file operation操作就调用hung_up_tty_fops这组函数,这组函数实际上不能执行对写操作。tty_hangup - trigger a hangup原创 2013-08-13 11:13:45 · 2125 阅读 · 0 评论 -
tty driver(3)
关于operations有file, tty, lisc, and tty_port 4种分别是在什么情况下调用的?1. 通过设备文件节点调到注册的 tty_fops有关设备结点的文件系统调用,可以看char device:tty_register_driver -> cdev_init(&driver->cdev, &tty_fops);static const stru原创 2013-07-19 16:58:34 · 1068 阅读 · 0 评论 -
Termios
转自:http://baike.baidu.com/view/1510559.htmTermios百科名片termios的实现中,有大量的参数设置,还有伪终端的说法。原因就在于当初UNIX发明时,(上世纪七十~八十年代),在美国,西欧大学里面用的都是大型机加客户终端,学生们用的是串口方式与大型机进行交流,通讯。所以,当时很多软件的设计都是针对这种情况而开发的。包括t转载 2013-07-20 17:15:08 · 813 阅读 · 0 评论 -
tty层子系统
The tty Layerhttp://www.linuxjournal.com/article/5896?page=0,0;该文写在 2002年,好多内容已经改变如设备结点的创建,现在的读 buffer好像多了一级 tty_buffer, 原来可能只有 read_buf.不管怎么说主要的思想没有改变。我们从内核如何处理系统控制台和串口开始,写一系列关于设备驱动开发的文章。欢迎来翻译 2013-07-23 17:00:28 · 1629 阅读 · 0 评论 -
Linux中tty、pty、pts的概念区别
基本概念:1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。2> pty(虚拟终端):但是如果我们远程telnet到主机或转载 2013-08-02 18:27:21 · 764 阅读 · 0 评论 -
浅析terminal创建时ptmx和pts关系
我们打开一个terminal,那么将会在devpts文件系统/dev/pts下创建一个对应的pts字符文件,该pts字符文件节点直接由/dev/ptmx节点的驱动函数ptmx_open()调用devpts_pty_new(tty->link)[tty对应ptmx,tty->link对应/dev/pts/xxx,那么tty->link->link又对应回ptmx同样ptm_drive转载 2013-08-08 11:27:55 · 4190 阅读 · 1 评论 -
浅析ptmx代码级open如何运作ptyp,ttyp,pts伪终端(转载)
1.对ptmx执行open操作,将创建1对tty主从设备.tty_init=>cdev_init(&ptmx_cdev, &ptmx_fops);=>然后创建/dev/ptmx节点[luther.gliethttp].所以/dev/ptmx节点的open函数为ptmx_fops.ptmx_open()static int ptmx_open(struct inode * ino转载 2013-08-08 11:33:15 · 11416 阅读 · 0 评论 -
从printXX看tty设备
从printXX看tty设备(1)tty基础 一、主题当定位一个问题的时候,最为直观和简单的方法就是在代码的特定位置加上对我们感兴趣的特定数据的打印,这是不依赖其它外部工具(调试器类工具)最简单和直观的方法,这个方法在用户态和内核态调试中都是适用的,就连最经典的C语言程序也是一个printf(“Hello World\n”),可见这个printf是在是程序员居家旅行、杀人灭口必备工转载 2013-08-08 11:31:30 · 2824 阅读 · 0 评论 -
伪终端pty的原理及使用
1. what is pseudo termina伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上)。例 如/dev/ptyp3和/dev/ttyp3(或者在设备文件系统中分别是/dev/pty/m3和 /dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ptyp3(master设备原创 2013-08-09 14:02:50 · 8007 阅读 · 0 评论 -
/dev/tty, /dev/console and /dev/ttyN
控制终端(/dev/tty)如 果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它 具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使原创 2013-08-09 18:22:31 · 2742 阅读 · 0 评论 -
对于Linux内核tty设备的一点理解
tekkamanninja.blog.chinaunix.net虽然一直做嵌入式Linux,宿主机和开发板通信天天都在用tty设备通信,但是其实自己对TTY设备及终端的概念认识几乎是0。对于Linux内核的终端、tty、控制台等概念的认识很模糊。由于在学习的时候碰到了重定向console的问题,所以借机学习下tty的知识。以下是我对tty的认识总结,信息来源于网络和内核文档。参考资转载 2013-08-11 11:06:14 · 1071 阅读 · 0 评论 -
tty driver总结
/********************************************************/int tty_open(struct inode *inode, struct file *filp);1.分配tty_file具体的数据,并加入到common 数据结构file int tty_alloc_file(struct file *file)原创 2013-08-12 18:31:09 · 3320 阅读 · 2 评论 -
linux kernel下输入输出console如何实现
kerneler的技术人生转载 2015-04-22 22:07:15 · 769 阅读 · 0 评论