支持Preemption內核的實時系統有buildroot,debian和ubuntu。在buildroot系統中自帶cyclictest ,如果是ubuntu系統或者debian系統,可以在開發板聯網之后,使用apt安裝,輸入 以下命令: apt-get install rt-tests 在燒寫非實時內核的buildroot鏡像之后,使用cyclictest測試,執行以下命令: cyclictest -S -p 99 -m ![]() 在上圖中,T:0~7 表示序號為0~7的線程,P:99 表示線程的優先級是99 ,C:857213表示計數器。線程的時間間隔每達到一次,計數器加一;I:4500表示時間間隔為4500微秒;Min表示最小延時(us);Act表示最近一次的延時(us);Avg表示平均延時(us); Max表示最大延時(us)。 在實際使用環境中,如果沒有適當的負載,運行cyclictest所得到的延遲統計數據不準確,為了模擬一些負載類型,我們可以采用官方提供的 hackbench工具。然后基于這個負載,我們運行cyclictest軟件來測試系統在事件發生時的響應時間。輸入以下命令: hackbench -l -1 -g 15 -f 25 -P & cyclictest -S -p 99 -m 然后燒寫迅為提供的Preemption實時內核鏡像,輸入以下命令空載測試,測試1小時,如下圖所示: cyclictest -S -p 99-m 在實際使用環境中,如果沒有適當的負載,運行cyclictest所得到的延遲統計數據不準確,為了模擬一些負載類型,我們可以采用官方提供的 hackbench工具。然后基于這個負載,我們 運行cyclictest軟件來測試系統在事件發生時的響應時間。輸入以下命令: hackbench -l -1 -g 15 -f 25 -P & cyclictest -S -p 99 -m 在這里,我們重點比較三組數據的最大延遲(max)參數,因為系統的實時性能取決于最大延遲時間。通過比較打實時系統前后的測試,可以明顯看到延遲下降明顯,實時效果顯著提升。 下表列舉了不同情況下的延遲參數。 通過上表的對比,可以明顯看出延時從10302us 降低到279us,實時效果非常明顯。注意! 測試結果僅供大家參考,如果運行不同程度的負載,測試情況會有所不同. |