中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » [讨论]保护模式下的中断响应时间?
作者:
标题: [讨论]保护模式下的中断响应时间? 上一主题 | 下一主题
ATLaS
初级用户




积分 169
发帖 29
注册 2003-7-9
状态 离线
『楼 主』:  [讨论]保护模式下的中断响应时间?

程序是基于DJGPP V2.03, GCC 3.23的。DPMI HOST用的是CWSDPMI r5和PMODE 1.3。
问题描述:假定程序运行于纯保护模式下(pure protected mode),我想测量系统对硬件中断的响应时间,因为我希望这个时间能够<10微秒。实际上在watcom c + dos4g/w下这一点是可以保证的。

中断信号源:信号发生器,4KHz的方波。接入到机器的IRQ7。
测试程序:纯保护模式,用_go32_dpmi_allocate_iret_wrapper(), _go32_dpmi_set_protected_mode_inerrupt_vector()来设置保护模式下的ISR。ISR非常简单,只是在进ISR的时候向并口写1,出来的时候写0,中间只有一个COUNTER++。在主程序中把除了IRQ7以外的所有的可屏蔽中断(IRQ0~IRQ15)都屏蔽掉,只有一个死循环:for (; {}。而且当dpmi host是cwsdpmi时,通过cwsparam.exe关闭了virtual memory。
测量:把中断信号源和并口的输出信号都接入逻辑分析仪来测量时间差。

这种测试在watcom c + dos4g/w下做过,经过通宵测试最大时间差在10微秒左右。但是在djgpp + cwsdpmi或者pmode下测试时,绝大多数时间内,时间差<6微秒,但有时会突然增大到20、30甚至60~80微秒!我今天的试验程序跑了大概7小时,出现了一次20微秒,一次80微秒!这种情况在那种对实时性稍微有些要求的场合都无法让人满意。

我不知道问题会出在什么地方,如果有,大概也是dpmi host的问题?有没有人做过类似的实验?结果又是如何呢?我在comp.os.msdos.djgpp新闻组上发帖子问过,但还没有人回我。

2003-7-9 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: