如何在linux模块中打开另一台设备?

时间:2014-07-30 05:21:08

标签: linux module kernel driver device

例如,我有一个' / dev / a'作为一个cdev。 现在我想写一个模块' b'之前' b'已注册,我需要发送消息给' a'所以' a'将开始。 我曾经在应用程序中通过ioctl()来完成它,但现在我想在模块中执行它' b'。 open()无法在模块中使用,因此如何打开' a'在模块' b'?

2 个答案:

答案 0 :(得分:2)

你可以这样打开

struct file* test;
test = filp_open("/dev/targetDevice",O_RDWR,0);

现在正在调用ioctl

test->f_op->unlocked_ioctl(test,IOCTL_MACRO,params);

答案 1 :(得分:0)

要打开设备,您应该在linux中使用开放系统调用并检查可用设备列表,例如/dev/ttyUSB0/dev/ttyS0等,然后打开它,您将获得一个写入和读取的描述符在设备上打开设备进行通信。

int fd;
fd=open(“/dev/ttyUSB0”, O_RDWR);

要了解更多详细信息,请参阅此link