阅读:2709回复:27
怎么在驱动中实现微秒级定时(9x/2000)
如题
|
|
|
沙发#
发布于:2002-07-18 14:47
用什么中断好呢?
|
|
|
板凳#
发布于:2002-07-18 12:26
如果在驱动中可用中断呀
|
|
地板#
发布于:2002-07-18 09:54
如果你只是想在W2000下等待若干微秒可用KeStallExecutionProcessor()
|
|
|
地下室#
发布于:2002-07-16 15:01
修改8254的计数值就是直接端口操作吗?
接管IRQ0直接修改IDT就可以了吗? |
|
|
5楼#
发布于:2002-07-15 23:08
好哇,怎么发给你呢? 登陆驱动开发论坛的首页,上面有收件箱,好象可以发的吧。 :P |
|
6楼#
发布于:2002-07-15 20:22
xdjm说的没错,我原来用板上8253做中断实现过微秒,不过当时是在nt上(98年),2000上没做过但想来也差不多,所以用这个一定可以实现,大兄弟你放心好了
|
|
|
7楼#
发布于:2002-07-15 18:17
up! 兄弟,灌水请上水坛,你这么干只会引起大家反感!你不觉得无聊吗? 请自行删除! [编辑 - 7/15/02 by dazzy] |
|
8楼#
发布于:2002-07-15 17:54
up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!vup!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!vup!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!vup!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!vup!up!up!
|
|
|
9楼#
发布于:2002-07-15 16:19
好哇,怎么发给你呢?
|
|
|
10楼#
发布于:2002-07-15 16:10
那么没有用到APIC的机器呢?据我所知应该是P5以上的机器都有这个,不过也不知道是不是真的。 应该说,现在PCI总线的机器基本上都采用了APIC,因为APIC支持多处理器系统。 我们这儿不能上OICQ之类的东东,因为有放火墙~~~不过有什么心得的话可以发消息给我 :P :P :P |
|
11楼#
发布于:2002-07-15 15:03
那么没有用到APIC的机器呢?据我所知应该是P5以上的机器都有这个,不过也不知道是不是真的。
因为我的程序将来是卖给客户,所以我最好是找出一种通用的方法:( 你说的接管8254的中断是指直接接管IRQ0的IDT吗? 另:我看了你的其它贴子,很PF你的技术,我们能不能找个地方聊一下这个,比如OICQ之类的? |
|
|
12楼#
发布于:2002-07-15 14:55
修改8254的的时间间隔我知道,不过这样应该会导致依赖于它的系统时钟发生混乱。 放心好了,在基于APIC的计算机上,8254根本没有用着,系统不是用它来实现多任务调度的,你可以放心使用。用以下的指令可以看一下你的计算机是不是使用了APIC: _asm mov eax,01h; _asm cpuid; // EDX寄存器的Bit9为1时,则表明APIC存在。 |
|
13楼#
发布于:2002-07-15 14:31
修改8254的的时间间隔我知道,不过这样应该会导致依赖于它的系统时钟发生混乱。
不知道能不能把你的代码给我看看?或者再给我说详细点,Windows内核我接触得不是太多 |
|
|
14楼#
发布于:2002-07-15 14:24
在Windows 2000下应该怎么做呢?兄弟我从来没做过这个。老兄给我讲讲吧,我的Mail:aresljc@163.net QQ:3156557 简单地说: 1。修改8254的定时间隔 2。修改APIC的设置,使得8254定时器的中断优先级为最高,需要高于系统时钟 3。如果你愿意,截获8254的中断/如果你不愿意的话,直接用IoConnectInterrupt估计也行。 主要需要参考一下APIC的有关资料,可以在Intel的官方网站上下载。 在基于APIC-HAL的Windows 2000系统中,系统时钟的中断向量为0D1H,在单处理器系统中,这是正常情况下最高的中断优先级了,你必须设法使得8254的中断优先级高于它才行,否则精度难以保证。 |
|
15楼#
发布于:2002-07-15 13:42
在Windows 2000下应该怎么做呢?兄弟我从来没做过这个。老兄给我讲讲吧,我的Mail:aresljc@163.net QQ:3156557
|
|
|
16楼#
发布于:2002-07-15 13:35
能够达到50微秒级吗?救命啊!我老板要得很急啊! 50微秒绝对没有问题,使用8254就可以了。不过如果你的机器用的是APIC,那么8254的中断优先级很低,你需要提高它的中断优先级。我可以做到20微秒,误差在1%左右 |
|
17楼#
发布于:2002-07-15 11:31
能够达到50微秒级吗?救命啊!我老板要得很急啊!
|
|
|
18楼#
发布于:2002-07-15 11:08
有谁解决过吗?微秒级。
|
|
19楼#
发布于:2002-07-15 10:38
10微秒级呢?100微秒级呢?
|
|
|
上一页
下一页