我目前正在为自定义协议开发基于gpio的内核模块。根据协议的要求,我必须将数据,时钟和使能信号发送到输出设备throgh gpio。这个数据是16位的。为了发送任何新数据,使能信号首先变高。然后,数据在时钟的每个下降沿(从高到低)逐位发送1位。发送完所有16位后,时钟信号停止,使能信号变为低电平。
我已经使用FriendlyARM mini2440成功开发了此协议。那时我用了一个定时器并设置了它的irq。在其服务程序中,我已经将数据1发送1位。
我目前在Raspberry pi中做同样的事情。我已经阅读了BCM2825的数据表,它说它有4个系统定时器。但是,通过Rpi论坛,我发现Rpi使用系统计时器0,2和3.所以,只剩下一个系统计时器1,我想利用它。我无法弄清楚如何在Rpi上设置系统计时器。有没有人在内核模块中使用它?那请求帮忙。
而不是编写内核模块,如果我用xenomai补丁修补linux内核,设置定期定时器并通过定时器中断例程发送数据是否容易?
有什么建议吗?提前谢谢。