关于linux下tty驱动的疑问
最近看了一阵子串口驱动,是基于mini2440的,想问一下内核中的console和tty的区别在哪里?
tty核心注册了一个cdev设备,而uart_port结构里面还有一个console类型的指针。
这两个东西应该都是向串口输出字符用的,那有什么不同呢?
我的理解是:console为内核的printk函数输出服务,tty对应的cdev是为用户空间的进程输出服务的。这样说对不对呢?
另外,我最近看串口这块的驱动都一个多月了,才勉强对其框架有个了解,感觉读代码很费劲啊,碰到很多问题:
1. 驱动中往往涉及一些flag变量,这些变量每个bit位会对应一些设置或者功能什么的,但你在设置flag的代码本身这里是看不懂他是做什么用的,内核的其他地方会根据flag的设置完成不同的功能,感觉碰上这种flag的用法,很难追踪代码,理解其实际用法也很难;
2. 我是用source insight看代码的,有些时候一些汇编实现的常量source insight识别不到,无法定位到该常量的定义位置;
3. 感觉自己读代码没有什么章法,脑子里很乱的感觉;
各位有什么好的方法或者建议吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
没人回复啊
谁能帮帮忙啊
console可以在menuconfig的时候指定( Boot options里面),缺省是console=ttyS0;
看代码的时候可以用source insigt和VMware 2种方法结合
回复 1# weiguixm
console是控制台,举个简单的例子,你使用的CRT5.0通过串口连接到板子的时候显示的串口就是控制台,
而tty是虚拟终端,你板子的命令行要在控制台显示,就要先创建或者申请虚拟终端。
谢谢楼上两位
是不是这样理解:console基于tty实现?