匿名
未登录
登录
百问网嵌入式Linux wiki
搜索
查看“Serial TTY line discipline”的源代码
来自百问网嵌入式Linux wiki
名字空间
页面
讨论
更多
更多
页面选项
Read
查看源代码
历史
←
Serial TTY line discipline
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
本文提供有关 Linux® TTY 框架的信息。 它说明了如何使用线路规则激活“ UART”接口,以及如何从用户和内核空间访问它。<br /> ==Framework purpose== UART是几种设备类型(例如蓝牙,NFC,FM收音机和GPS设备)的通用接口。 <br/> 从内核版本4.12开始,TTY框架中引入了串行设备总线(也称为Serdev),以改善提供给连接到串行端口的设备的接口。 请参考 [[Serial TTY overview]]文章,以详细了解TTY框架的用途。尽管如此,仍然有可能(即使不推荐)使用行规“驱动程序”。 本文重点介绍提供给连接到串行端口的设备的线路规范接口。 ==System overview== [[File:Serial TTY Line Discipline overview.png|center|link=]] <br/> ===Components description=== ''From client application to hardware'' * Application: customer application to read/write data from the peripheral connected on the serial port. * [[TTY tools]]: tools provided by Linux community, such as '''stty''', '''ldattach''', '''inputattach''', '''tty''', '''ttys''', '''agetty''', '''mingetty''', '''kermit''' and '''minicom'''. {{ReviewsComments|FGA W1941: I can't find TTY tools in above figure. Is it relevant here?.}} * Termios: API<ref name="termios API">[http://man7.org/linux/man-pages/man3/termios.3.html termios API], Linux Programmer's Manual termios API Documentation (user land API with serial devices)</ref> which offers an interface to develop an application using serial drivers. *Client subsystem: kernel subsystem client of '''TTY''' core (Example: a Bluetooth device) {{ReviewsComments|FGA W1941: I can't find "Client subsystem" in above figure.}} * TTY framework: high-level TTY structures management, including {{CodeSource | Linux kernel | drivers/tty/tty_io.c | '''tty character device driver'''}}, {{CodeSource | Linux kernel | drivers/tty | '''TTY core functions'''}}, [[Serial TTY line discipline| '''line discipline''']]. {{ReviewsComments|FGA W1941: "TTY framework" -> "TTY Core" in above figure ?}} * Serial framework: low-level serial driver management, including the {{CodeSource | Linux kernel | drivers/tty/serial/serial_core.c | '''serial core''' functions}}. {{ReviewsComments|FGA W1941: "Serial framework" -> "Serial Core" in above figure ?}} * USART driver: {{CodeSource | Linux kernel | drivers/tty/serial/stm32-usart.c | stm32-usart}} '''low-level serial driver''' for all stm32 family devices. * [[USART internal peripheral| STM32 USART]]: '''STM32 frontend IP''' connected to the external devices through a serial port {{ReviewsComments|FGA W1941: Maybe worth adding the external device in the above figure ?}} ===APIs description=== The TTY provides only '''character device interface''' (named /dev/ttyX) to user space. The main API for user space TTY client applications is provided by the portable POSIX terminal interface termios, which relies on /dev/ttyX interface for TTY link configuration.<br/> The '''termios API'''<ref name="termios API"/> is a user land API, and its functions describe a general terminal interface that is provided to control asynchronous communications ports. <br/> The POSIX termios API abstracts the low-level details of the hardware, and provides a simple yet complete programming interface that can be used for advanced projects. It is a wrapper on '''character device API''' <ref> [http://bootlin.com/doc/accessing-hardware.pdf Character device API overview], ''Accessing hardware from userspace'' training, Bootlin documentation</ref> ioctl operations.<br/> {{Info|A [[Serial TTY line discipline|'''line discipline''']] driver can be used when a serial interface is needed at kernel level.}} For example, a kernel driver maybe needed to control an external device through an U(S)ART port. {{ReviewsComments|FGA W1941: I rephrased above note, can you please double-ckeck ?}} * The '''line discipline''' will be responsible for: ** creating this new kernel API ** routing data flow between serial core and new kernel API <br/> {{ReviewsComments|FGA W1941: No how to use section, nor examples ? Is it deliberate ?<br/> FGA W1941: Maybe worth pointing out some existing examples in the kernel ?}} ==References== <references /> <noinclude> [[Category:Serial TTY|6]] </noinclude>
该页面使用的模板:
模板:CodeSource
(
查看源代码
)
模板:Info
(
查看源代码
)
模板:STDarkBlue
(
查看源代码
)
返回至
Serial TTY line discipline
。
导航
导航
WIKI首页
官方店铺
资料下载
交流社区
所有页面
所有产品
MPU-Linux开发板
MCU-单片机开发板
Linux开发系列视频
单片机开发系列视频
所有模块配件
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志