ttySAC0与/dev/tts/0是否对应同一个物理设备串口0
2013-08-06 14:46
274 查看
1. 命令行参数“console=ttySAC0”与/dev/目录没有任何关系,它被用来选择从哪个设备输出内核、驱动的printk信息:
①.
在内核kernel/printk.c中,有这一行代码:
__setup("console=", console_setup);
对于命令行参数“console=ttySAC0”,console_setup函数会将设备名(name)、索引(index)解析出来:
名为ttySAC,索引为0──表示第一个设备
②. S3C2410的串口驱动文件drivers/serial/s3c2410.c中,有如下数据结构:
1882 static struct console s3c24xx_serial_console =
1883 {
1884 .name = S3C24XX_SERIAL_NAME, // 这个宏被定义为"ttySAC"
1885
.device = uart_console_device, // init进行、用户程序打开/dev/console时用到
1886
.flags = CON_PRINTBUFFER, // 打印先前在log_buf中保存的信息
1887 .index = -1, // 表示使用哪个串口由命令行参数决定
1888
.write = s3c24xx_serial_console_write, // 串口控制台的输出函数
1889 .setup = s3c24xx_serial_console_setup // 串口控制台的设置函数
1890 };
①、②的名字(name)、索引(index)两相比较,刚好相符,所以printk信息就会通过②中的s3c24xx_serial_console_write函数输出。
2. 至于/dev目录下哪个设备文件与具体设备对应,这取决于设备文件的主、次设备号,而不是它们的名字。
①.
同样是在S3C2410的串口驱动文件drivers/serial/s3c2410.c中,有如下数据结构:
static struct uart_driver s3c24xx_uart_drv = {
.owner = THIS_MODULE,
.dev_name = "s3c2410_serial",
.nr = 3,
.cons = S3C24XX_SERIAL_CONSOLE,
.driver_name = S3C24XX_SERIAL_NAME,
.major = S3C24XX_SERIAL_MAJOR, // 主设备号为204
.minor = S3C24XX_SERIAL_MINOR, // 次设备号为64,这指第1个串口;第2个为65
};
②. 使用ls -l命令查看/dev目录下的某个设备文件,比如:
$ ls -l /dev/tts/0
如果它的主设备号为204、次设备号为64,那么就对应第一个串口
转自:http://www.100ask.net/showtopic-16.aspx
相关文章推荐
- ttySAC0与/dev/tts/0是否对应同一个物理设备串口0
- ttySAC0与/dev/tts/0是否对应同一个物理设备串口0
- ttySAC0与/dev/tts/0是否对应同一个物理设备串口0
- 进程的逻辑设备如何与一个物理设备建立对应的关系?
- 写一个检测网线是否被拔出的守护进程(嵌入式设备上)
- 如何给一个实际物理地址对应的内存空间赋值?
- 向VMWare虚拟机添加一个串口设备(serial port)
- linux C程序如何确定一个域名所对应的网站是否可以打开!
- GPS数据串口接收的数据 是否在一个设定好的检测区内
- 一个驱动程序对应多个设备
- (1)任务描述 编写一个程序:输入一个身份证号,判断该号码对应的人是否是18至25岁女孩,是则输出”yes”,否则输出”no” (2)功能要求 ①输入一行给出正整数N(<= 100)是输入的身份证号码
- 收藏一个Ping的小工具类,可用于网络中检测目的设备是否在线
- RS232(串口)是否接有设备
- 根据设备描述, 找到并返回一个串口设备的串口名称
- 给出一个入栈序列和一个出栈序列,判断出栈序列是否是入栈序列对应的出栈序列
- 编写一个函数,判断两个字符串是否是是相互打乱的,也就是说它们有着相同的字符,但是对应不同的顺序。
- 向VMWare虚拟机添加一个串口设备(serial port)
- 编写一个程序:输入一个身份证号,判断该号码对应的人是否是18至25岁女孩,是则输出”yes”,否则输出”no”
- 自动检测文本文件编码是否为GB2312(简体中文),并转换为UTF8编码,附一个GB2312全区对应的utf8编码码表
- 修改SATP对应的默认PSP,使用MASK_PATH掩掉一个vendor的一个类型的设备