|
引用 12 楼 drind 的回复:
引用 10 楼 coderJames 的回复:
在CE5.0下面用QueryPormanceCounter这个函数计算出来的, 就是在DeviceIOControl函数前后调用QueryPormanceCounter, 对比两次的值就能大概算出DeviceIOControl所占的时间, QueryPormanceCounter函数本身的运行时间影响可以通过加大取样样本数来减少影响, 0.1ms只是个概数, 实际用时根据定制的CE分辨率不同而从0.06ms到0.1ms不等, 芯片是EP9315 200mHz
IO时延和这个不是同个概念来的, IO时延指的应该是发出IO命令到命令确实动作所花的时间来的吧
楼主说的应该就是我想表达的意思了。就是0.1ms的时延应该主要是由WinCE操作系统造成的,芯片本身的IO执行速度是比较快的。由于WinCE是非实时操作系统,从调用驱动到程序返回,要经历用户态到内核态再到用户态的转换,耗费的时间是比较长而且不确定的。操作系统做了一大堆堆栈操作,最后对你来说有用的可能只有驱动程序里面对寄存器操作的那条语句。
如果不换一个实时操作系统(eg:ucos,vxworks)的话,这样的问题不好解决。 |
|