![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 00:04 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » [讨论]保护模式下的中断响应时间? |
| 可打印版本 1,310 / 0 |
| 第1楼 ATLaS | 发表于 2003-07-09 00:00 |
| 初级用户 发帖 29 积分 169 | |
|
[讨论]保护模式下的中断响应时间? 程序是基于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新闻组上发帖子问过,但还没有人回我。 ![]() |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |