我必须实现虚拟设备驱动程序,它将计算指定角度的sin。
我发现article如何编写hello-world驱动程序,当我在其上调用update
时它很好用。
但是为了计算罪,我需要将一些数据传输给我的驱动程序。哪种解决方案最无痛?
我应该首先以单独的方法读取所有输入数据,记住它,然后计算&输出
答案 0 :(得分:2)
最无痛的解决方案可能是实施ioctl
。
链接示例中的cat
使用read()
,这在您的设备生成数据时非常好,例如鼠标或摄像机,但是当设备回复命令时{{1}更合适:你以一个角度作为参数发送一个命令ioctl
,然后得到答案的回复。
替代方案是GET_SIN
角度,然后write()
解决方案:更复杂,因为可能有几个进程同时读写,这将是一个烂摊子!< / p>
顺便说一句,小心! AFAIK,内核不允许使用浮点算术,也不允许链接到read()
,所以你必须将正弦实现为定点整数函数,可能使用表...