首先,Windows XP 无法保证一个很准确的Timer Clock的触发信号,特别是在CPU的加载很重的时候,给出的Sleep(1)尤其不准确。
在某些应用上,有些感应时间非常短的信号,有可能会接收不到。因为在信号感应的这几个微秒内,CPU的使用权可能不在这个事件上,因而错失信号。
因为Windows XP是GPOS(General-Purpose OS), 而不是RTOS(Real-Time OS), 所以会有以上的问题,所以RTX及时控制软件(Real Time Extension), 可以解决排除这个Windows及时反应的问题。
以下是RTX的构架
由此,RTX有以下特点:
1. 多任务性 Multi-Tasking
2. 依然可以便捷在Windows环境上开发
3. 程序与程序之间的沟通机制与W32程序相同。如Event, Semaphore, Shared Memory, Mutex等
4. 与W32应用程序使用相同的硬件, 使用相同的OS, 因此可以并存, 并同时执行在Windows OS环境下。
5. W32应用程序不能直接驱动/读取外部的I/O, 必须要透过Windows的驱动程序,,或者系统供应商提供的函数库。
6. Register-Based Driving. RTX程序像DOS一样,直接以I/O驱动的方式驱动I/O。经由RTX-RTSS Sub-system Kernel到达硬件抽象层, 而不是通过Windows NT Device Driver来驱动。
7. RTX-RTSS Kernel中执行的程序, 都具备比W32程序还高的优先权, 因此不会受到W32程序加载的影响。
8. Real-time Time-Deterministic Timer. 可以设定最小的时间间隔为10us, 又不会影响W32程序的运行, 特别是在影像处理上。
9. RTX在Windows系统内部使用Real Time Interrupt.
将会错过更好的风景,保持一份平和,保持一份清醒。