|
1. Thread 執行次序是根據 priority, 但同一 priority 則是 round robin, 所以你要先確定你的機器上不會出現相同或是更高 priority 的 thread.
2. Kernel 大部份是 MS 寫的, 但裡面一堆東西 (OEM or OAL 開頭的) 是在你的 bsp 內, 若是你在 OEMInterruptHandler 裡面做一些耗時間的事, 系統還是會動, 但是下一個中斷被 acknowledge 的時間就會被拖延, 因為 ARM core 只有一個中斷, 所以 MS 是沒辦法保證 ARM 下的 ISR latency.
3. Interrupt Controller 通常可以設定硬體的 priority, 記得要先設好.
你說的非常好, WINCE 某些地方是可以訂制的.
所以, 你用這些方法, 或許可以測出中斷發生時有 99.999% 的 200 us 達成率, 但是沒人可以跟你保證 100% 的達成率, 除非你能保證你所提供的每一段 code 的執行時間.
通常, us 等級的東西, 用 wince 那麼大的系統來做, 是有一些風險的.
Paul, Chao @ Techware |
|