編譯RT-tests進行Linux實時性測試

前言:

    在工業級的應用上,對於實時性的要求十分嚴格,就如我當前公司中,開發的是工業級機器人,
未收到同步幀,則認爲通信出現異常,於是將機器人停止。
   所以實時線程的執行時間變得尤其嚴格,在打完實時補丁後,怎麼對實時性進行測試也成
爲重要的一環,本文就採用開源的RT-tests來對系統的實時性進行測試。

關鍵字:

RT-testsRT-Linux

交叉編譯cyclictest(ARM平臺)

a) 下載rt_tests源碼
    git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
    切換分支:
    git checkout origin/stable/v1.0
b) 交叉編譯
    修改Makefile中的編譯器
        CC = arm-none-linux-gnueabi-gcc
        AR = arm-none-linux-gnueabi-ar
    執行make指令

    報錯:
        src/cyclictest/rt_numa.h:29:18: fatal error: numa.h: 沒有那個文件或目錄
    解決:
        1)安裝apt-file 來找到依賴庫
            apt-get install apt-file
            apt-file update #更新源
        2)尋找 numa.h
            apt-file install numa.h
        3) 安裝相應的庫
            apt-get install libnuma-dev 

交叉編譯cyclictest (i686平臺)

a) 下載rt_tests源碼
    git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
    切換分支:
    git checkout origin/stable/v1.0
b) 交叉編譯
    修改Makefile中的編譯器
        CC = gcc
        AR = ar
        CFLAGE 加上 -m32
    執行make指令
c) 報錯找到不-lnuma lib
    1,下載libnuma_dev ia86板的deb包
    2,解壓出來,找到libnuma.a,複製到/rt-test/numa_ia86目錄下
    3,修改Makefile LDFLAGS += -L../numa_ia86/
    4,編譯並通過

運行cyclictest程序進行實時性測試:

sudo cyclictest -t 5 -p 80 -n 
註釋: 運行五個線程,線程優先級爲80,無限循環

cyclictest運行結果詳解

T: 0 序號爲0的線程
P: 0 線程優先級爲0
C: 9397 計數器。線程的時間間隔每達到一次,計數器加1
I: 1000 時間間隔爲1000微秒(us)
Min: 最小延時(us)
Act: 最近一次的延時(us)
Avg:平均延時(us)
Max: 最大延時(us)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章