【发布时间】:2014-05-22 12:59:44
【问题描述】:
我对 Linux 开发还很陌生,但在找到问题的答案时遇到了一些麻烦。
我有一个 PWM 设备连接到运行 Debian 内核版本 3.8.13 的 Beaglebone(白色)。 Beaglebone 连接到一个 PWM 设备,我可以从/sys/devices/ocp.3/pwm_test_P8_13.10/ 控制该设备。最终我想使用 C 来控制设备,我认为最好的方法是使用 ioctl。
这就是我的问题出现的地方:我不需要从/dev 访问设备吗?如果是这样,当/dev 中根本没有pwm-entry 时我该怎么做?我知道我可以直接写入[...]/pwm_test_P8_13.10/ 中的文件,但我会尽量避免这种情况。
还有其他方法可以解决这个问题吗?
【问题讨论】:
-
稍微扩展一下,你想创建一个字符设备,这可以让你知道一个进程何时打开你的设备,并允许你指定调用 ioctl 时将调用的函数.如果您使用链接中描述的接口(并且如果您的系统正在运行 udev 守护程序),则会自动为您创建设备节点。但是,无论如何,一旦您注册了设备的主要和次要号码,您也可以手动创建 /dev 节点: mknod /dev/pwm c
-
更多详情,请查看lwn.net/Kernel/LDD3的第3章
标签: c linux linux-kernel linux-device-driver embedded-linux