UART子系统(十三)编写虚拟UART驱动程序_框架

简介: UART子系统(十三)编写虚拟UART驱动程序_框架

编写虚拟UART驱动程序_框架


参考代码

硬件相关:
drivers/tty/serial/imx.c
drivers/tty/serial/stm32-usart.c
串口核心层:
drivers/tty/serial/serial_core.c
TTY层:
drivers/tty/tty_io.c


本节课程源码在GIT仓库里

doc_and_source_for_drivers\IMX6ULL\source\09_UART
  04_virtual_uart_driver
doc_and_source_for_drivers\STM32MP157\source\A7\09_UART
  04_virtual_uart_driver


1. 框架回顾

1670940797029.jpg


2. 编写UART驱动要做的事


1670940806221.jpg

注册一个uart_driver:它里面有名字、主次设备号等

对于每一个port,调用uart_add_one_port,里面的核心是uart_ops,提供了硬件操作函数 * uart_add_one_port由platform_driver的probe函数调用 * 所以:

编写设备树节点

注册platform_driver


3. 虚拟的UART


1670940815988.jpg

为了做实验,我们还要创建一个虚拟文件:/proc/virt_uart_buf


要发数据给虚拟串口时,执行:echo "xxx" > /proc/virt_uart_buf

要读取虚拟串口的数据时,执行:cat /proc/virt_uart_buf


4. 编程


4.1 编写设备树

4.2 编写uart_driver

4.3 编写platform_driver

4.4 实现uart_ops

4.5 实现/proc/virt_uart_buf

相关文章
|
7月前
|
Linux
Linux驱动开发(使用I2C总线设备驱动模型编写AT24C02驱动程序)
Linux驱动开发(使用I2C总线设备驱动模型编写AT24C02驱动程序)
101 0
|
8月前
|
存储 Go 芯片
单片机外围模块漫谈之四,USB总线基本概念。
单片机外围模块漫谈之四,USB总线基本概念。
|
11月前
|
存储 Linux 开发者
【Linux学习笔记】设备驱动模型详解——总线、设备、驱动和类
设备驱动是计算机系统中的重要组成部分,它们允许操作系统与硬件交互。设备驱动模型是一种通用的抽象框架,用于描述操作系统如何管理硬件设备。这里我们将介绍设备驱动模型中的四个关键概念:总线、设备、驱动和类。
497 0
|
12月前
LED模板驱动程序的改造:总线设备驱动模型
LED模板驱动程序的改造:总线设备驱动模型
83 0
|
12月前
LED模板驱动程序的改造:设备树
LED模板驱动程序的改造:设备树
95 0
|
12月前
|
Linux
一文搞懂 USB 设备端驱动框架
hello 大家好,今天带领大家学习一下USB 设备端驱动 内核版本:4.4.94
716 0
|
12月前
|
XML 测试技术 网络安全
开发调试工具:可编程USB转IIC/I2C/SPI/UART适配器模块开发板
发个方便测试I2C、SPI、1Wire接口的工具模块 总的思路是通过USB或者UART接口发送一些协议字符串,由模块转换成上面几种接口的硬件时序电信号,实现与这几种接口芯片、设备的快速测试。
Linux驱动分析之SPI控制器
之前对SPI驱动的整体架构做了介绍,现在来分析具体的驱动程序。之前说过,SPI驱动分为设备驱动和控制器驱动。先来分析控制器驱动。我们以RockChip的控制器来作为分析。
|
Linux 芯片
Linux驱动分析之SPI设备
前面我们对SPI控制器驱动进行了分析,接下来来分析SPI设备驱动。我们以DS1302驱动作为分析对象。DS1302是一款RTC芯片,估计很多人在学单片机时用到过。RTC芯片算是比较简单的,也方便分析理解。
Linux驱动分析之SPI设备
|
Ubuntu 开发工具 虚拟化
UART子系统(十六)编写虚拟UART驱动程序_调试
UART子系统(十六)编写虚拟UART驱动程序_调试
232 0
UART子系统(十六)编写虚拟UART驱动程序_调试