用协处理器提高μC/OS-II的实时性回到顶部
在μC/OS-II中用XGATE处理时钟节拍中断时,当无需做任务调度时,XGATE遍历10个任务的控制块链表,执行延时计数器减1操作,共需要148条指令。由于XGATE是RISC结构的处理器,指令执行时间多为1~2个周期,故执行148条指令共需要218个周期。在32MHz时钟频率下,执行时间大约7μs,仅相当于62.5 μs时钟节拍的11%。这说明,即使使用短至62.5μs的时钟
节拍,对XGATE的占用率也并不高。
通过以上测试可看出,由单一CPU运行μC/OS-II,16 kHz的时钟节拍导致S12X CPU频繁地加载中断服务子程序,占用超过了50%,严重地影响了任务的实时运行。故对于单一CPU,一般采用的时钟节拍频率不高于100 Hz,此时计时精度为±10 ms,以避免时钟节拍中断占用大量CPU运行时间。
在用XGATE处理μC/OS-II的时钟节拍时,16 kHz的时钟节拍并未对S12X CPU的任务运行产生影响,这个频率的时钟节拍使μC/OS-II的定时精度高于±62.5 μs。利用协处理器XGATE来处理μC/OS-II的时钟节拍,使主CPU的执行时间为固定值,因而保证了任务的实时运行,提升了系统实时性,高频率的时钟节拍也提高了计时精度。
4 结 论
μC/OS-II中,时钟节拍中断服务子程序需要遍历整个任务控制块链表,不同应用中任务数目不同,遍历整个任务控制块链表所花费的时间就不同。时钟节拍中断所带来的不确定性是影响μC/OS-II实时性指标的唯一因素。采用协处理器来实现μC/OS-II的时钟节拍可以很好地解决这个问题。
如果使用协处理器来响应μC/OS-II的时钟节拍中断,那么μC/OS—II任务控制块链表的遍历和延时计数器减1操作均由协处理器完成。主CPU只有在需要做任务调度时才会进入相应的中断服务子程序,因此主CPU运行中断服务子程序的时间是固定值。由于主CPU的运行时间不会被时钟节拍中断占用,因而可以采用很高频率的时钟节拍来提高μC/OS-II的计时精度。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
