|
由于raw-os的内核集成了系统最大关中断时间的测量,所以测试变得会很简单,用户只需要移植一个定时器的接口就行了。下面是两个平台的具体测试结果:
iar 6.6 编译器优化等级中间(相当于-O2) 在k60 100Mhz 的cpu 平台下,在开了内核最大关中断为0us的特性下, 内核最大关中断时间实际测试为0.7us。
iar 6.6 编译器优化等级中间(相当于-O2) 在k60 100Mhz 的cpu 平台下,在关了内核最大关中断时间为0us的特性下,实际量的内核最大关中断时间为6.2us。
keil 4.71版本下编译器优化等级-O2, 在lpc1788 120Mhz的cpu平台下,在开了内核最大关中断为0us的特性下, 内核最大关中断时间实际测试为0.43us。
keil 4.71版本下编译器优化等级-O2, 在lpc1788 120Mhz的cpu平台下,在关了内核最大关中断为0us的特性下, 内核最大关中断时间实际测试为5.8us。
需要指出的是在开了最大内核0us中断特性的情况下, 内核最大关中断时间是一个稳定的常数,但是在关了最大内核0us中断特性的情况下,内核最大关中断时间取决于使用的系统api。
举个例子,如果用户采用广播的发送信号量,或者广播发送信息到队列,或者使用flag,一次唤醒多个任务的话,内核关中断时间会急剧上升。
大部分应用下关掉最大内核0us中断特性,也能满足应用的需求了。最大内核0us中断特性往往应用在一些极端苛刻实时性的应用下,比如精度需要控制在1us以下的这种应用等等。
|
|