请大家都来分享一下怎么解决wince实时性问题的方法,看到的请进!
现在实习的公司是做数控产品的,对实时性要求很高。我刚刚在EP9315+wince5.0这个方案上实现了用内部时钟中断来触发执行某些需要周期执行,但又要求有比较高地实时性的一些动作。但是不知道这样做行不行,以及这样会产生一些什么样的问题,所以想请大家发表一些看法。还能不能有其它方法可以解决基于wince的一些应用对实时性要求。同时希望大家分享一些在解决wince实时性问题方面的经验!
[解决办法]
从OS架构来说,CE5是RTOS. 实时性要求高的动作可以在ISR中完成,而IST中做的事情就会有一些延迟。
[解决办法]
那是啊,ISR里面的事情是直接执行的,不参加系统调度,事情做的太多自然会影响系统性能,你要是再一个ISR里一直做事情,那其他的中断还要不要相应了?
既然你是高实时性的动作,想必也不会花很多时间吧
[解决办法]
可以通过提供线程优先级来实现实时性
[解决办法]
首先,ISR处理过后并不会马上响应IST,这里存在一个中断延时,原因比较复杂,一部分程度这个延时取决于操作系统的调度,而且取决于系统环境,例如当前系统会有更高优先级的线程,这时候实时性会大大降低,所以一般提高中断实时性能,可以
1.提高IST优先级。
2.在ISR中处理。
3.使用FIQ。
在ISR中处理会不会影响系统的性能,取决于你的动作了,如果做浮点运算,这显然是不明智的。
[解决办法]
timerd 事
[解决办法]
提高线程优先级,
提高需要及时的
降低不需要实时的,
修改ist,修改isr实现。