返回信息流各位大牛,想在ARM的Linux下实现一个功能,
每1ms向USB端口发送一个数据包。
内核是2.6版本的。
现在有以下几个问题:
1.1ms的时间间隔,我感觉精度比较高,一般的线程或者信号等软件中断实现起来延时应该不好控制,感觉不适合,是不是应该用定时器硬件中断来实现?
2.关于定时器的中断,以前在没有linux的ARM里通过设置寄存器做过一些,在Linux下应该怎么做啊?通过写驱动的方式吗?各位能不能提供一些例子参考一下。
3.无论是软件中断还是硬件中断,中断函数都应该很精简,否则1ms的周期对于CPU是不是会造成很大负担?CPU主频是1GHz的。有没有类似DMA等手段,不经过CPU直接由另外的控制器完成把内存一个区域的数据通过USB总线传送出去?
请各位指点。
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #12035同步于 2012/4/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
【求助】ARM Linux下1ms的定时器中断如何实现啊?
dillan
2012/4/12镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
1GHz=1 * 1024 * 1024 * 1024次没秒。 也就是说,cpu大致要挑 1024*1024次才要通知你一次,你说cpu负担大吗,cpu只会觉得:哎呀,好无聊啊好无聊。。。。
【 在 dillan 的大作中提到: 】
: 各位大牛,想在ARM的Linux下实现一个功能,
: 每1ms向USB端口发送一个数据包。
: 内核是2.6版本的。
: ...................
内核函数里面的定时器应该比较准确包,写个简单的驱动试试
到1ms几乎是不可能的,因为这样保证任何中断工作包括网络或者其它的东西都要在1ms内
完成,否则在1ms整点到来的时候就必须去做USB那件事了.
如果硬件有定时器中断,并且并不是绝对严格1ms的要求,那我觉得可以尝试一下效果,不
过向usb发数据也很麻烦.【 在 dillan (火山小生) 的大作中提到: 】
: 各位大牛,想在ARM的Linux下实现一个功能,
: 每1ms向USB端口发送一个数据包。
: 内核是2.6版本的。
: ...................