linux串口属性 位掩码,linux驱动子系统--TTY

本文详细解析了Linux驱动子系统中的TTY串口属性,特别是位掩码的相关概念。讲解了UPF_FOURPORT、UPF_SAK等标志位的意义,并介绍了struct uart_port结构体中的各项参数,如mctrl、timeout、type等。此外,还探讨了串口控制状态标志位TIOCM_LE、TIOCM_DTR等。通过对struct ktermios结构的分析,阐述了输入、输出模式标志、控制模式标志以及本地模式标志的设置和作用。
摘要由CSDN通过智能技术生成

d0c405b8ad614f2df38855ab5a55a00f.png

tty目录下的8250指的是intel的8250系列串口芯片驱动目录;8250系列包括8250,16450,16450A等。

【struct uart_port解析】

flag串口属性标志,以下是解释

#define UPF_FOURPORT                       4端口串口卡,8250系列

#define UPF_SAK                                      当串口接收到break信号时终止在当前虚拟终端上运行的所有进程(包括X窗口)。这个组合键被称为“安全访问键“(SAK).

#define UPF_SPD_MASK                        波特率掩码

#define UPF_SPD_HI                               当设置波特率的参数非法时,默认其为57600

#define UPF_SPD_VHI                             当设置波特率的参数非法时,默认其为115200

#define UPF_SPD_CUST                       当期望波特率为38400时,如果UPF_SPD_HI和UPF_SPD_VHI同时被指定,则波特率除数由port->custom_divisor指定,这个用不到

#define UPF_SPD_SHI                            当设置波特率的参数非法时,默认其为230400

#define UPF_SPD_WARP                       当设置波特率的参数非法时,默认其为460800

#define UPF_SKIP_TEST                        调过检测串口是否存在,当前只有8250系列驱动在用

#define UPF_AUTO_IRQ                         串口中断号由port->ops->config_port()自动探测

#define UPF_HARDPPS_CD                  支持硬件秒脉冲检测

#define UPF_LOW_LATENCY                串口接收到数据后是否立即传递到line discipline处理

#define UPF_BUGGY_UART                  古怪的串口???一般不用

#define UPF_NO_TXEN_TEST              不进行传输使能检测

#define UPF_MAGIC_MULTIPLIER       波特率除数计算时不通过uart_get_divisor()来获得,而是直接指定

#define UPF_CONS_FLOW                    具有流控功能

#define UPF_SHARE_IRQ                      与其他设备共享中断号,未用到

#define UPF_EXAR_EFR                        串口为8250系列XR17D15x芯片,它的Extended Features Register位置和普通8250系列不一样

#define UPF_BUG_THRE                       8250系列串口,存在THRE的bug

#define UPF_FIXED_TYPE                     串口类型是固定的,否则由port->ops->config_port()来探测

#define UPF_BOOT_AUTOCONF         是否在串口注册时自动配置(调用port->ops->config_port())

#define UPF_FIXED_PORT                    串口类型属性注册后就不可以改变

#define UPF_DEAD                       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值