[国嵌攻略][131][串口驱动分析-接收]

tty数据接收流程

//tty子系统

1.tty_fops中的tty_read响应系统调用

2.tty_read调用tty_ldisc_N_TTY中的n_tty_read

 

n_tty_read

1.设置app的状态

2.如果没有数据可读,让阻塞生效

3.如果有数据可读,从read_buf中读走数据

 

什么时候串口驱动会把数据送到n_tty_read的read_buf中

当串口接收到数据时会产生接收中断,然后中断处理程序会把数据送到read_buf中。

 

串口驱动如何收到数据

串口中断处理程序s3c24xx_serial_rx_chars

1.读取UFCON寄存器

2.读取UFSTAT寄存器

3.如果接收fifo里的数据量为0,则退出处理

4.读取UERSTAT寄存器

5.从URXH寄存器中取出接收到的字符

6.进行流控处理

7.根据UERSTAT寄存器的值,记录具体的错误类型

8.如果收到的是sysrq字符,进行特殊处理-uart_handle_sysrq_char

9.把接收到的字符送进串口驱动的buf,uart_insert_char

10.把串口驱动收到的数据送进线路规程的read_buf,tty_flip_buffer_push

 

串口流控控制

1.硬件流控

A   B

rx   tx

tx   rx

rts   cts

cts   rts

当A可以接收数据时,会把rts设置为高电平,间接的会把B的cts设置成高电平,表示B可以发送送进。当B可以接收数据时,会把rts设置成高电平,间接的会把A的cts设置成高电平,表示A可以发送数据。

 

硬件流程分为:非自动流程,人为编写软件判断fifo来设置rts;自动流程,当fifo小于32字节时,arm处理器自动的设置rts。Linux系统主要支持自动流控。

转载于:https://www.cnblogs.com/d442130165/p/5264289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
入式Linux视频教程全套2011新版,强烈推荐!!! 视频1.iso -学习方法与课程体系介绍(学前必看) -学习方法介绍.avi -入式课程体系.pdf -入式Linux学习方法.pdf -课程1-入式入门体验班(上) -第1天(入式系统概述) -体验入门班-1-1(入式系统概述).avi -体验入门班-1-2(ARM概述).avi -体验入门班-1-3(入式Linux概述).avi -体验入门班-1-4(2440开发板介绍).avi -体验入门班-1-5(软硬件环境搭建).avi -第2天(开发板快乐体验) -体验入门班-2-1(开发板系统安装).avi -体验入门班-2-1(开发板系统安装-Jlink方式).avi -体验入门班-2-1(开发板系统安装-并口方式).avi -体验入门班-2-2(裸机程序体验).avi -体验入门班-2-3(QT系统体验).avi -体验入门班-2-4(Android系统体验).avi 视频2.iso -课程1-入式入门体验班(下) -第3天(Linux系统体验) -体验入门班-3-1(Linux定制安装).avi -体验入门班-3-2(Linux命令).avi -体验入门班-3-3(VI使用).avi -体验入门班-3-4(Linux系统管理).avi -体验入门班-3-5(Shell编程).avi -体验入门班-3-6(Qcd功能演示).avi -体验入门班-3-7(必修实验).avi -课程2-入式Linux应用开发班 -第1天(编程基础) -应用班-1-1(GCC程序编译).avi -应用班-1-2(GDB程序调试).avi -应用班-1-3(makefile工程管理).avi -应用班-1-4(必修实验).avi -第2天(文件时间编程) -应用班-2-1(系统调用方式访问文件).avi -应用班-2-2(库函数访问文件).avi -应用班-2-3(时间编程).avi -应用班-2-4(必修实验).avi -第3天(多进程程序设计) -应用班-3-1(进程控制原理).avi -应用班-3-2(进程控制程序设计).avi -应用班-3-3(必修实验).avi -第4天(进程间通讯) -应用班-4-1(进程间通讯概述).avi -应用班-4-2(管道通讯).avi -应用班-4-3(信号通讯).avi -应用班-4-4(共享内存通讯).avi -应用班-4-5(必修实验).avi -第5天(进程间通讯) -应用班-5-1(消息队列).avi -应用班-5-2(信号量).avi -应用班-5-3(必修实验).avi -第6天(进程间通讯) -应用班-6-1(线程基础).avi -应用班-6-2(多线程程序设计).avi -应用班-6-3(必修实验).avi -第7天(网络编程) -应用班-7-1(Linux网络概述).avi -应用班-7-2(Linux网络编程基础).avi -应用班-7-3(TCP程序设计).avi -应用班-7-4(UDP网络程序设计).avi -应用班-7-5(并发服务器).avi -应用班-7-6(必修实验).avi 视频3.iso -课程3-ARM系统进阶班 -第1天(ARM系统开发基础) -ARM系统精讲班-1-1(ADS集成开发环境).avi -ARM系统精讲班-1-2(ARM工作模式).avi -ARM系统精讲班-1-3(ARM寄存器).avi -ARM系统精讲班-1-4(ARM寻址方式).avi -ARM系统精讲班-1-5(ARM汇编指令详解).avi -第2天(ARM系统开发基础) -ARM系统精讲班-2-1(ARM汇编指令详解).avi -ARM系统精讲班-2-2(ARM伪指令).avi -ARM系统精讲班-2-3((混合编程).avi -ARM系统精讲班-1-8(必修实验).avi -第3天(LED驱动程序设计) -ARM系统精讲班-2-1(GPIO).avi -ARM系统精讲班-2-2(LED控制程序设计).avi -ARM系统精讲班-2-3((LED闪烁).avi -第4天(LED与按键驱动程序设计) -ARM系统精讲班-4-1(ARM中断控制系统).avi -ARM系统精讲班-4-2(按键控制程序设计).avi -ARM系统精讲班-2-6(必修实验).avi -第5天(定时器与时钟驱动程序设计) -ARM系统精讲班-5-1(ARM时钟体系).avi -ARM系统精讲班-5-2(定时器驱动程序设计).avi -课程4(入式LINUX内核驱动进阶班-上) -第1天(内核开发基础) -内核驱动进阶班-1-1(Linux内核简介).avi -内核驱动进阶班-1-2(Linux内核源代码).avi -内核驱动进阶班-1-3(Linux内核配置与编译).avi -内核驱动进阶班-1-4(Linux内核模块开发).avi -内核驱动进阶班-1-5(必修实验).avi -第2天(U-Boot移植) -内核驱动进阶班-2-1(入式linux系统架构).avi -内核驱动进阶班-2-2(交叉工具链).avi -内核驱动进阶班-2-3(Bootloader介绍).avi -内核驱动进阶班-2-4(U-Boot介绍).avi -内核驱动进阶班-2-5(U-Boot命令).avi -内核驱动进阶班-2-6(U-Boot启动流程).avi -内核驱动进阶班-2-7(Uboot移植).avi -内核驱动进阶班-2-8(必修实验).avi 视频4.iso -课程4(入式LINUX内核驱动进阶班-下) -第3天(内核开发基础) -内核驱动进阶班-3-1(入式linux内核制作).avi -内核驱动进阶班-3-2(根文件系统制作).avi -内核驱动进阶班-3-3(内核启动流程).avi -内核驱动进阶班-3-4(入式文件系统).avi -内核驱动进阶班-3-5(必修实验).avi -第4天(内存管理子系统) -内核驱动进阶班-4-1(Linux内存管理).avi -内核驱动进阶班-4-2(进程地址空间).avi -内核驱动进阶班-4-3(内核地址空间).avi -内核驱动进阶班-4-4(Linux内核链表).avi -内核驱动进阶班-4-5(Linux内核定时器).avi -内核驱动进阶班-2-7(Uboot移植).avi -内核驱动进阶班-2-8(必修实验).avi -第5天(进程管理子系统) -内核驱动进阶班-5-1(LINUX进程控制).avi -内核驱动进阶班-5-2(LINUX进程调度).avi -内核驱动进阶班-5-3(Linux系统调用).avi -内核驱动进阶班-5-4(Proc文件系统).avi -内核驱动进阶班-5-5(内核异常分析).avi -内核驱动进阶班-5-6(必修实验).avi -第6天(简单字符设备驱动程序设计) -内核驱动进阶班-6-1(LINUX驱动程序介绍).avi -内核驱动进阶班-6-2(字符设备驱动程序设计).avi -内核驱动进阶班-6-3(字符设备驱动程序实例分析).avi -内核驱动进阶班-6-4(竞争与互斥).avi -内核驱动进阶班-6-5(必修实验).avi -第7天(高级字符设备驱动程序设计) -内核驱动进阶班-7-1(Ioctl设备控制).avi -内核驱动进阶班-7-2(内核等待队列).avi -内核驱动进阶班-7-3(阻塞型字符设备驱动).avi -内核驱动进阶班-7-4(Poll设备方法).avi -内核驱动进阶班-7-5(自动创建设备文件).avi -内核驱动进阶班-7-6(必修实验).avi

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值