tty(imx serial)(二)

news2024/11/24 13:24:36

基于linux-3.14.16
基于imx分析

一、串口设备注册

注册了一个uart设备驱动,和一个平台设备驱动
在这里插入图片描述
先一个一个看

1、serial_imx_driver平台设备驱动

在这里插入图片描述
在这里插入图片描述
看看匹配的设备树,imx6qdl.dtsi定义了很多,我们只看一个
在这里插入图片描述
如上图,设备树描述了寄存器地址,中断,使用时钟,使用dma等信息。
接着看probe干了什么,

serial_imx_probe

在这里插入图片描述
首先分配和一块空间作为struct imx_port
serial_imx_probe_dt拿了一些设备树的属性,初始化到创建的struct imx_port,但是这些属性在设备树我没有找到,先忽略。

接着获取寄存器地址,并映射出来,接着继续初始化struct imx_port
在这里插入图片描述
其他的先不管,我们先注意到imx_pops和一个定时器,先记着,,在struct imx_port中有一个操作集合定时器
在这里插入图片描述
这个是定时器的超时函数
在这里插入图片描述
接下来获取时钟,,猜uartclk是什么????
在这里插入图片描述
最后这里有一个全局变量imx_ports是个数组,以line为下标保存了创建的struct imx_port,,line在哪里初始化的,是什么内容现在我们还不清楚。

补充:在probe开始解析设备树的时候,看到port的line来自对serial的解析,应该是串口的序号(我们暂且这么理解)
在这里插入图片描述

在这里插入图片描述
然后看到一个注册port的接口uart_add_one_port,注册其实是struct uart_port,我们在上一节研究了uart的核心和api。

至此,通过对这个平台驱动的注册,以及匹配到设备树的uart节点,完成一个struct imx_port(struct uart_port)的创建,并且注册到serial核心

接下来返回去看uart_register_driver

uart_register_driver注册一个uart驱动

uart_register_driver注册的驱动imx_reg,上一节在注册port的时候就已经看到了,,最终是对imx_reg注册了一个port。
在这里插入图片描述

总结

总的来说,imx的串口驱动做了什么呢??,首先定义了一个struct uart_driver,调用serial核心的api uart_register_driver注册了这个struct uart_driver,,,然后匹配设备树,对每个uart(x)创建了一个struct uart_port,并调用uart_add_one_port将其添加到struct uart_driver。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 RK3399+fpga 的 VME 总线控制器设计(二)硬件和FPGA逻辑设计

3.2 FPGA 最小系统设计 FPGA 最小系统是指可以使 FPGA 正常工作的最基本的系统,主要包括电源电 路、配置电路、时钟和复位电路。本次设计使用的 FPGA 为紫光同创的 PG2L100H, 接下来具体介绍 FPGA 最小系统各个部分的电路设计。 ( 1 &#…

RflySim平台——高可信度的无人控制系统开发、测试与评估平台

01/RflySim平台背景 智能无人系统是一个复杂系统,涉及机械、控制、计算机、通信和材料等多个领域技术,而AI无疑是开发IUS所需的关键技术之一。随着新一代人工智能兴起,我们正面临一场新的工业革命,人类创造了各种无人系统&#x…

论文解读|点云分割中用于多尺度处理的金字塔结构

原创 | 文 BFT机器人 01 论文内容 这篇论文是关于点云分割中金字塔架构的多尺度处理的详细解读。 点云数据的语义分割是自动驾驶和其他应用中的关键任务。在这项工作中,作者指出了在点云分割中移动U形结构的紧迫需求和巨大好处,并受到图像分割领域最新进…

Fleet Farm EDI 需求详解

Fleet Farm 是一家成立于1955年的美国卖场,总部位于威斯康星州。作为一个全方位的零售商,Fleet Farm 提供了广泛的商品和服务,涵盖了农业用品、家居装饰、户外用品、汽车用品、园艺用品等多个领域。他们的使命是为客户提供高品质的产品和卓越…

《阿里大数据之路》读书笔记:第二章 日志采集

第二章 日志采集 一、浏览器的页面日志采集 浏览器的页面型产品/服务的日志采集可分为两大类: 页面浏览(展现)日志采集 指一个页面被浏览器加载呈现时采集的日志 此类日志是最基础的互联网日志 此类日志是目前所有互联网产品的两大基本指…

【Linux】LVS负载均衡群集 NAT模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 LVS负载均衡群集 NAT模式 一、理解负载均衡群集的原理1.企业群集应用概述2.企业群集分类3.负载均衡群集架构4.负载均衡群集工作模式分析5.NAT模式6.TUN模式7.DR模式 二、LVS虚…

ESP32 BLE蓝牙服务端客户端通信

官方帮助见这里 BLE服务端命令 ATRESTORE//复位 ATBLEINIT2 //将esp32设置成蓝牙SERVER ATBLEGATTSSRVCRE //GATTS创建服务, 建议初始化后就建立GATTS, 建立连接在创建会报错 ATBLEGATTSSRVSTART //GATTS 开启全部服务。 ATBLEGATTSCHAR? //GATTS 发现服务特征 ATBLEADDR…

回收站的文件删除了怎么恢复?实用的2个方法推荐!

我一直以为回收站里的文件都是我自己删除的文件,因此没有怎么在意。但是我刚刚清空了回收站,却发现我有些重要的文件是被误删而放入回收站的,现在这些文件都被删除了,这可怎么办? 回收站中通常会存放很多我们删除的文件…

使用QT: ActiveX控件生成文件,实现在QT项目中调用.c文件

以连接的其他控件为例,控件的位数(32/64),需要和QT编译器保持一致 我在此处连接的是.h和.c文件的类接口,在QT中使用 原始接口: 1.在QT程序中添加模块 QT axcontainer2.查看COM控件的UUID 打开一个.ui文件…

Java基础-多线程JUC-生产者和消费者

1. 生产者与消费者 实现线程轮流交替执行的结果; 实现线程休眠和唤醒均要使用到锁对象; 修改标注位(foodFlag); 代码实现: public class demo11 {public static void main(String[] args) {/*** 需求&#…

java jvm TLAB是什么?指针碰撞解释,空闲列表解释

1. 对象的创建: 当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到 一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程…

SpringBoot 实现审核功能

一、审核功能实现的方式 1、普通 方案:经办时入A表,审核后从A表读取数据,然后操作目标B表; 优势:思路简单 劣势:对后端功能实行高度的嵌入;审核功能数据操作不统一 2、弹框式 方案&#x…

HummerRisk 配置 HTTPS访问

简介 HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题。核心能力包括混合云的安全治理和云原生安全检测。 HTTPS(Hypertext Transfer Protocol Secure)是一种通过加密和身份验证来保护网络通信安全的协议。它…

ChatGPT对高等教育的可能影响与对策建议

ChatGPT来袭,将对高等教育带来哪些影响,我们又该如何应对? 对于ChatGPT,有人欢喜有人忧,不同人、不同领域评价不一。在一些人眼里,它就是天使,而在另外一些人眼里,它几乎可以说是魔…

php导出pdf

插件官网:TCPDF 博主用的是tp6框架 、tcpdf插件 composer require tecnickcom/tcpdf --ignore-platform-reqs 后面是忽略平台要求的参数 ---------------中文乱码start------------------ 关于中文乱码问题: 网上说的下载字体放入fonts 利用tools…

Linux之系统管理

系统管理 Linux中的进程和服务 计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。 启动之后一直存在、常驻内存的进程,一般被称作“服务”(service) service 服务管理&#xff…

GaussDB OLTP云数据库配套工具DDM

目录 一、前言 二、DDM定义 三、DDM业务架构 四、为什么需要DDM? 五、DDM特性 六、DDM应用场景 一、前言 现在越来越多的企业应用在逐步向云平台迁移,同时这对云平台带了一个严峻的考验和挑战。但针对华为云GaussDB数据库, 我们在生态方面做了比…

利用iptables + zabbix-agent 监控进程端口流量

这几天部署了一台ARM架构的linux系统的监控,服务器系统上没有任何工具可以获取数据来获取端口流量,yum,apt-get软件包管理工具都没有,所以想获取数据比较困难。 最终决定使用iptables来添加几条指定端口的规则来统计入站流量和出站…

电子时钟制作(瑞萨RA)(7)----按键修改数码管时间

概述 前几节课程已经单独驱动了数码管和RTC,同时已经整合成了能够用数码管显示具体时间,但是无法修改时间,这节就来配置使用按键修改具体的日期。 硬件准备 首先需要准备一个开发板,这里我准备的是芯片型号R7FA2E1A72DFL的开发…