情况: 我试图操纵/破解Debian内核,以便能够通过奇偶校验黑客使用9位UART,你可以在NET上的任何地方找到它。现在出于某种原因,Tx工作正常,但是当我们查看Rx时,我们会丢弃字节。我们期待返回9个字节,包括crc,但我们在4-7之间得到可变数量。它会随着完全相同的代码连续几次运行而变化,因此它几乎与缓冲区相关。将它连接到逻辑分析仪,来自从设备的响应是正确的(9个预期字节),但是它已经被“损坏”了#34;在某个低水平,我无法追踪。
尝试: 所以我开始转储这里出现的所有字节(char):
static void serial_omap_rdi(struct uart_omap_port *up, unsigned int lsr)
仍然只能看到4-7个字节的坏数据。我假设这是由于奇偶校验/成帧/ FIFO错误造成的,但我似乎无法更深入地了解我能够准确看到它失败的地方。
问题: 有没有人在带有Linux内核的UART线路上看到过这种类型的丢弃数据?如果是这样,你会知道跟踪它的任何可能的途径吗?
内核中是否有任何地方可以实际转储进入UART Rx线路的逐位数据?
我非常感谢任何帮助,因为我最终了解内核如何/在何处丢弃这些字节......
平台: BBB Debian Linux 3.8.13-bone53 armv7l GNU / Linux 16750 UART(我相信)