μC/OS-II實(shí)時(shí)性能測試與研究
3.2 中斷響應時(shí)間測試步驟及結果
① 同任務(wù)切換時(shí)間測試。
圖2 中斷響應時(shí)間測試
② 如圖2所示,建立一個(gè)任務(wù)Task_IRT_Test和定時(shí)器0對應的中斷服務(wù)子程序Timer0_IRT_Test。在任務(wù)中開(kāi)啟定時(shí)器0,當定時(shí)器0自減到0時(shí),CPU響應該中斷,CPU的中斷向量跳轉到定時(shí)器0的中斷服務(wù)子程序Timer0_IRT_Test,由它保存CPU的全部寄存器;然后通知內核進(jìn)入中斷服務(wù)子程序,同時(shí)將堆棧指針保存到當前任務(wù)控制塊OS_TCB中,之后用戶(hù)的中斷服務(wù)代碼開(kāi)始執行,在此停止定時(shí)器0,讀出它的數值a2。
③ 根據式(2)計算結果。
④ 重復10次實(shí)驗,取最大值0.24 μs。
4 CPU運行頻率對μC/OS-II實(shí)時(shí)性的影響
將CPU運行頻率分別降低到152.00 MHz、101.25 MHz、67.50 MHz和33.75 MHz。
測試方法不變,其測試結果分別如圖3和圖4所示。其中,任務(wù)切換時(shí)間的最大值分別為7.14 μs、10.74 μs、16.35 μs、32.71 μs;中斷響應時(shí)間的最大值分別為0.32 μs、0.47 μs、0.95 μs、1.90 μs。
測試結果分析: 總體上,隨著(zhù)CPU運行頻率的增加,任務(wù)切換時(shí)間和中斷響應時(shí)間都會(huì )減小,且呈非線(xiàn)性變化。特別是CPU運行頻率較低時(shí),其變化對實(shí)時(shí)性能影響較大;當CPU運行在較高的頻率時(shí),其變化幅度相對要小些。其非線(xiàn)性變化是與最小分頻時(shí)間相關(guān)的。
這說(shuō)明CPU運行頻率對實(shí)時(shí)性能起著(zhù)非常重要的作用。因為它直接決定指令的處理周期,頻率增加時(shí),指令周期減小,系統用于同步等待的時(shí)間縮短,CPU執行每條語(yǔ)句的速度加快,保存和恢復CPU寄存器內容的速度也相應加快,因此實(shí)時(shí)性能變得更好。
5 CPU利用率對μC/OS-II實(shí)時(shí)性能的影響
之前的測試都是在CPU負荷較小的情況下進(jìn)行的,當CPU負荷增大(即利用率升高)時(shí),實(shí)時(shí)性又會(huì )如何變化呢?這里建立了N個(gè)相同的任務(wù),同時(shí)進(jìn)行大批量的浮點(diǎn)運算。再建立一個(gè)任務(wù),利用μC/OS-II自帶函數OSStat()計算CPU利用率。對應不同的N值,有不同的CPU利用率,分別測試其實(shí)時(shí)性,得到的結果如圖5所示。測試結果表明: 當CPU負荷增大時(shí),任務(wù)切換時(shí)間會(huì )增加,中斷響應時(shí)間也會(huì )略有增加。CPU利用率對系統的實(shí)時(shí)性能有一定的影響,但不是很大。
6 結論
本文在特定的硬件平臺上測得μC/OS-II在不同情況下的任務(wù)切換時(shí)間和中斷響應時(shí)間,能較好地反映出它的實(shí)時(shí)性能。測試方法在沒(méi)有精密儀器的條件下即可完成,具有簡(jiǎn)單易行、硬件依賴(lài)性低、可信度高的特點(diǎn),為開(kāi)發(fā)人員將μC/OS-II用于嵌入式操作系統的實(shí)時(shí)應用提供了依據。
評論