jizhang1976 发表于 2010-08-31 21:35

问下在linux内核态的流水灯问题

问下在内核态怎样实现流水灯驱动,不用应用层控制,直接用insmod 插入后就流水灯就OK了
还有我像延迟到纳秒级别产生方波怎样实现,谢谢

smalloc 发表于 2010-09-01 00:08

纳秒级别只能硬件能做到

goldenfort 发表于 2010-09-01 10:37

回复 1# jizhang1976


    1ns是10的 -9次方吧。也就是 1G 分之一 秒, 大概。

   这和cpu的频率在一个数量级别,软件很难弄出来。

jizhang1976 发表于 2010-09-01 10:53

我的意思是纳秒级别,是要从83ns到1000纳秒都可以,在内核态的gpio驱动能达到吗?我的cpu是100MHZ的

jizhang1976 发表于 2010-09-01 10:55

还有像网卡传送数据不也是有1000M的吗?那网卡的驱动能做到1纳秒吧,我这个只要100纳秒的应该不是问题吧?

goldenfort 发表于 2010-09-01 11:05

回复 5# jizhang1976


    网卡的震荡器 是网卡自带的, 不是 cpu 上的。

   如果1000ns, 直接用udelay( )就可以了。

   cpu是 100m,100m是 10的8次方吧。那cpu的一个时钟周期就是10ns.


   用自定义的指令 (比如循环啥的)来延时, 用gpio搞 , 设置 gpio register 本身 也要延时吧 ,可能可以 搞成几百个 ns的吧

snail_314 发表于 2010-09-01 12:30

回复 5# jizhang1976


    网卡的输出数据方波都是芯片输出的,不是驱动在那里翻转gpio完成的

jizhang1976 发表于 2010-09-01 14:46

那我要是用cpu自带的pwm来驱动呢?是不是就OK了

goldenfort 发表于 2010-09-01 15:13

回复 8# jizhang1976


    我用的 pxa270,pwm只有部分pin 有这个功能, 最高频率13M.

    根据你使用的cpu情况不同。

jizhang1976 发表于 2010-09-01 16:40

我现在用的是at91sam9263有4个gpio口复用pwm,是不是把pwm驱动起来,在应用层调用就OK了,pwm的时钟频率是复用主芯片时钟(100MHz),我现在的设备要用3个pwm产生波形就行,是不是这样做OK了
页: [1]
查看完整版本: 问下在linux内核态的流水灯问题