关于linux下tty驱动的疑问

发布于 2022-10-15 08:36:02 字数 599 浏览 22 评论 0

最近看了一阵子串口驱动,是基于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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

揽清风入怀 2022-10-22 08:36:02

没人回复啊
谁能帮帮忙啊

臻嫒无言 2022-10-22 08:36:02

console可以在menuconfig的时候指定( Boot options里面),缺省是console=ttyS0;
看代码的时候可以用source insigt和VMware 2种方法结合

〗斷ホ乔殘χμё〖 2022-10-22 08:36:02

回复 1# weiguixm

    console是控制台,举个简单的例子,你使用的CRT5.0通过串口连接到板子的时候显示的串口就是控制台,
   而tty是虚拟终端,你板子的命令行要在控制台显示,就要先创建或者申请虚拟终端。

恍梦境° 2022-10-22 08:36:02

谢谢楼上两位
是不是这样理解:console基于tty实现?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文