我正在尝试在嵌入式 Linux 中的 UART 上强制使用 9 位协议。目前我正在 am335x_evm 板上对此进行测试。我计划使用坚持平价来做到这一点。理想情况下,我希望不需要实际修改 omap-serial.c 驱动程序的任何代码。
9 位协议的原因是为了支持一些使用它的传统硬件。对于消息的地址部分,奇偶校验位需要为 1,对于数据部分,奇偶校验位需要为 0,对于终止字节,奇偶校验位需要再次为 1。
我计划在用户空间中运行一个进程,通过标准系统调用(打开、写入、读取、ioctl、tcsetattr 等)与 UART 交互。我将配置 UART 以启用奇偶校验并设置棒奇偶校验。然后我将奇偶校验设置为偶数并调用 write() 发送我的地址数据。然后我将奇偶校验设置为 0 并发送数据。我关心的是,如果我将奇偶校验从 1 更改为 0,什么时候会生效?如果 UART 尚未发送完所有地址数据,奇偶校验的更改是否会应用于所有未发送的数据?
最终编写了我自己的 9 位 uart 驱动程序。是最简单、最有效的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)