我编写了一个可加载Linux的内核模块来处理GPIO引脚上的自定义串行协议,以便与嵌入式设备进行通信。
我使用这种方法是为了在控制GPIO转换中获得更高的优先级,从而获得更高的精度。我在linx / delay.h中使用了udelay / mdelay函数。
我已经在arduino板上实现了一个中断处理程序,通过串行调试接口打印输出GPIO转换之间的时间,并且时间似乎不如我预期的那么精确(请不要考虑延迟由调试接口引入,同样的问题是以较低的速度重现。)
你能指点我如何在linux模块中发现它为什么会发生,或者如何更好地获得更好的方式,以精确的间隔激活/停用GPIO线?
非常感谢你! 安东尼奥
修改:
我会提供一些额外的信息。这些设备是:
我也会问你,默认的UART驱动程序如何以固定/精确的时间速率传输。
再次感谢你!