我正在为FPGA编写驱动程序,该驱动程序通过串行线路实现某种协议的数据链路层:它从RS-485线路接收数据,并且如果检测到有效的协议帧,则将其保存到内部缓冲区中。驱动程序通过/dev/ttyX
子系统提供uart_driver
接口。但是我希望我的用户空间程序能够按数据包读取数据,而不是像常规UART那样按单个字节读取数据。说,如果驱动程序收到协议帧,则将其推入翻转缓冲区,直到完全读取第一个帧后才推下一个帧。我该怎么做呢?我想我可以使用throttle
的{{1}} / unthrottle
函数,对吗?