UART write过程分析
参考代码
串口核心层:
drivers/tty/serial/serial_core.cTTY层:
drivers/tty/tty_io.c行规程:
drivers/tty/tty_ldisc.c
drivers/tty/n_tty.c
流程分析
tty_writeld->ops->write //调用行规程的write 函数
行规程(n_tty.c) 的 write函数:
在串口核心层的write 函数中,会先把数据存入buffer ,然后启动串口发送数据
uart_writecirc = &state->xmit;while (1) {c = CIRC_SPACE_TO_END(circ->head, circ->tail, UART_XMIT_SIZE);if (count < c)c = count;if (c <= 0)break;memcpy(circ->buf + circ->head, buf, c);circ->head = (circ->head + c) & (UART_XMIT_SIZE - 1);buf += c;count -= c;ret += c;}__uart_startport->ops->start_tx(port); //调用具体硬件的start_tx函数,将数据发送出去
UART write过程分析相关推荐
- 嵌入式linux启动过程分析,嵌入式Linux裸机开发(二)——S5PV210启动过程分析
嵌入式Linux裸机开发(二)--S5PV210启动过程分析 一.iROM启动方式简介 友善之臂Smart210开发板的SoC为三星S5PV210,S5PV210采用iROM启动方式进行启动,通过查阅 ...
- 嵌入式linux s5pv210,嵌入式Linux裸机开发(二)——S5PV210启动过程分析
嵌入式Linux裸机开发(二)--S5PV210启动过程分析 一.iROM启动方式简介友善之臂Smart210开发板的SoC为三星S5PV210,S5PV210采用iROM启动方式进行启动,通过查阅三 ...
- Linux UART驱动分析及测试
1.Linux TTY驱动程序框架 Linux TTY驱动程序代码位于/drivers/tty下面.TTY的层次接口包括TTY应用层.TTY文件层.TTY线路规程层.TTY驱动层.TTY设备驱动层.T ...
- Linux内核中断号映射过程分析(三)
1.概述 早期的CPU中断数量较少,中断系统简单,Linux内核可以将硬件中断号直接映射为软件中断号.但随着CPU支持的中断数量越来越多,中断系统也被设计的越来越复杂,一个CPU内部可能包含多个中断控 ...
- HarmonyOS镜像,HarmonyOS驱动加载过程分析
HDF(硬件驱动程序基础)驱动程序框架为驱动器开发人员提供驱动程序框架功能,包括驱动器加载,驱动服务管理和驱动程序消息传递机制.它旨在构建一个统一的驱动器架构平台,为驾驶开发人员提供更准确,更高效的开 ...
- 【LM401】USART串口配置过程 uart.c 代码解析
[LM401]USART串口配置过程 1. 板载资源说明 2.uart.c 串口配置文件修改 2.1接口文件 uart_if.c 2.2整体配置流程 2.2.1初始化串口,分配DMA 2.2.2配置串 ...
- UART驱动情景分析-read
一.源码框架回顾 shell读数据,一开始的时候没有就休眠.数据从串口发送到驱动,驱动接收到中断,驱动读取串口数据,这个数据会传给行规程. 行规程获取到数据后,会回显.按下删除就删除一个字符,按下回车 ...
- UART驱动情景分析-write
一.write过程分析 App写: 使用行规程来写 数据最终存入uart_state->xmit的buffer里 硬件发送: 使用硬件驱动中uart_ops->start_tx开始发送 具 ...
- Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8570428 通过前面几篇文章的学习,我们知道了 ...
- Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析
在Android系统中,Activity窗口的大小是由WindowManagerService服务来计算的.WindowManagerService服务会根据屏幕及其装饰区的大小来决定Activity ...
最新文章
- Worktile完成新一轮融资,将发力研发管理赛道
- js画布组件(canvas/canvas)
- iif能用到mysql中吗_请问ORACLE中IIF如何用
- 中文编程语言_文言文编程语言,让你明白什么叫“中文比英语还难”。
- filter笔记(主要看到黑马教程的ppt)
- 传智播客--刘意Java基础视频-深入浅出精华版
- 美通企业周刊 | 麦当劳阿里巴巴开启全域合作;老佛爷百货中国第三店落户贵阳;OPPO推出首款智能电视...
- [改造]微信缩放字体view的改造
- excel冻结行和列_说一说有些人在EXCEL中还不会用的冻结窗格
- 20145322 Exp5 MS08_067漏洞测试
- 这个夏天,飞到北纬18°去玩海——带着小样儿去三亚(二)
- 详解redis高级特性和工作原理
- RabbitMQ优化消息阻塞系列(一)解决方案梳理
- iPhone 13 用塑料瓶做天线, 网友炸了!!
- 必背英文面试口语(超级实用!!!)
- GD32F450ZIT6脉冲捕获会丢失脉冲的问题
- 五、MUX-VLAN QinQ技术
- linux zip/unzip命令
- vr性能测试软件,SteamVR性能测试工具
- 总结 | 有关激光雷达的QA