首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Coldfire/ucLinux上Bitbanging a PIO

在Coldfire/ucLinux上Bitbanging a PIO
EN

Stack Overflow用户
提问于 2010-03-22 06:43:30
回答 1查看 202关注 0票数 3

这就是问题:我需要通过PIO的2个引脚(1个时钟,1个数据)对一些硬件进行编程。时序约束很紧- 10ms时钟周期时间。所有这一切,当然,同时我保持非常高水平的服务(CAN总线,TCP/IP)。下游单元还通过断言配置为输入的PIO引脚高电平来进行ACKS。所以这个循环既要读也要写。我需要在串行流中发送16位。

有没有一种既定的方法来做这类事情,或者我应该简单地让硬件人员添加PIC或诸如此类的东西。

在这个阶段,我更倾向于避免像RTAI扩展这样的异国情调。我确实看到过一次关于用户模式IO的引用,它暗示了一个可能的中断驱动程序,但我忘记了它。

欢迎任何指点。

EN

回答 1

Stack Overflow用户

发布于 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内核中有一些特性,但是它们可能需要更多的工作。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2489061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档