如何处理 - 快速tx&接收数据---设备驱动程序Linux

时间:2012-12-04 09:12:41

标签: multithreading linux-device-driver embedded-linux can-bus

我期待在Linux上实现CAN总线通信的驱动程序 需要一些设计建议。

Linux有用户空间&内核空间。驱动程序在用户空间的内核空间应用程序中运行。

1>现在假设如果以非常高的速度接收数据包,那么驱动程序如何管理这种情况呢?

2 - ;如果数据包必须以高速传输那么该怎么做?

3>如何在用户和用户之间移动数据内核空间。我们应该使用系统调用还是除此之外的一些快速机制?

4>可以在内核级别的线程中完成吗?但是如果在内核级别有两个线程从CAN总线运行到TX并且从CAN总线接收RX然后我们必须使用互斥锁来保存关键部分(即我们的内部寄存器)

5个假设共享库用于从应用程序访问驱动程序。    共享库可以使用系统调用来访问驱动程序功能吗?

完全混淆应该是正确的方法。

请建议。任何回复都会很明显。

1 个答案:

答案 0 :(得分:0)

与您希望运行Linux的大多数处理器相比,数据速率CAN并不是那么快。大多数公交车的载重量低于60%,仅为60kB / s!从用户空间到内核空间的简单数据包FIFO应该没问题。

如果您有按时完成传输邮件的实时截止日期,那么可能会出现问题。或者更糟糕的是在给定时间段内响应于所接收的消息而发送消息。如果你有这些要求中的任何一个,Linux可能不适合你 - 你需要一个合适的实时操作系统(RTOS)。