这就是问题:我需要通过PIO的2个引脚(1个时钟,1个数据)对一些硬件进行编程。时序约束很紧- 10ms时钟周期时间。所有这一切,当然,同时我保持非常高水平的服务(CAN总线,TCP/IP)。下游单元还通过断言配置为输入的PIO引脚高电平来进行ACKS。所以这个循环既要读也要写。我需要在串行流中发送16位。
有没有一种既定的方法来做这类事情,或者我应该简单地让硬件人员添加PIC或诸如此类的东西。
在这个阶段,我更倾向于避免像RTAI扩展这样的异国情调。我确实看到过一次关于用户模式IO的引用,它暗示了一个可能的中断驱动程序,但我忘记了它。
欢迎任何指点。
发布于 2010-09-04 23:29:11
根据我的经验,最简单的方法是编写内核驱动程序。当然,如果一个还不存在-- 1个时钟,1个数据听起来像i2c (尽管10ms周期听起来比i2c慢得多),而且已经存在针对Coldfire的i2c驱动程序。即使它不是i2c,您也可能会发现可以使用i2c-adap-mcf_gpio作为起点。
您实际上很幸运,因为它是一个10ms的周期--默认的内核时钟周期是10ms (如果需要,它可以调整),所以您应该能够使用适当的内核睡眠函数。
(这也取决于您使用的内核。简单的用户模式I/O在2.6内核中非常容易获得-- 2.4内核中有一些特性,但是它们可能需要更多的工作。)
https://stackoverflow.com/questions/2489061
复制相似问题