我期待在 Linux 中实现 CAN 总线通信的驱动程序。
需要一些设计建议。
Linux有用户空间和内核空间。驱动程序在用户空间的内核空间应用程序中运行。
1> 现在假设如果以非常高的速度接收数据包,那么驱动程序如何处理这种情况?
2> 如果数据包必须以高速率传输,那该怎么办?
3> 数据应该如何在用户和内核空间之间移动。我们应该使用系统调用还是除此之外的一些快速机制?
4> 可以在内核级别的线程中完成吗?但是,如果有两个线程在内核级别运行,从 CAN 总线到 TX,从 CAN 总线到 RX,那么我们是否必须使用互斥锁来保存关键部分(即我们的内部寄存器)
5> 如果假设共享库用于从应用程序访问驱动程序。共享库可以使用系统调用访问驱动程序功能吗?
完全混淆什么应该是正确的方法。
请建议。任何答复将是可观的。