本文帶來的是基于全志T507-H(硬件平臺(tái):創(chuàng)龍科技TLT507-EVM評(píng)估板),Linux-RT內(nèi)核的硬件GPIO輸入和輸出實(shí)時(shí)性測(cè)試及應(yīng)用開發(fā)案例的分享。本次演示的開發(fā)環(huán)境如下:
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
Linux開發(fā)環(huán)境:Ubuntu18.04.4 64bit
虛擬機(jī):VMware16.2.5
U-Boot:U-Boot 2018
Kernel:Linux-RT-4.9.170
SDK:LinuxSDK-V2.0
分享案例:rt_gpio_ctrl、rt_input案例
測(cè)試工具:示波器
測(cè)試數(shù)據(jù)匯總
基于全志T507-H(硬件平臺(tái):創(chuàng)龍科技TLT507-EVM評(píng)估板),按照創(chuàng)龍科技提供的案例用戶手冊(cè)進(jìn)行操作,得出如下測(cè)試結(jié)果。
備注:測(cè)試數(shù)據(jù)與實(shí)際測(cè)試環(huán)境有關(guān),僅供參考。
測(cè)試結(jié)果如下表所示:
表1Linux-RT GPIO輸入輸出案例測(cè)試數(shù)據(jù)
GPIO輸入延時(shí) | 系統(tǒng)延遲 | GPIO輸出延時(shí) | 輸入輸出總延時(shí) | |
測(cè)試1 | 37us | 9us | 14us | 60us |
測(cè)試2 | 53us | 9us | 14us | 76us |
測(cè)試3 | 57us | 9us | 14us | 80us |
測(cè)試4 | 60us | 9us | 14us | 83us |
(1)GPIO輸入延時(shí):通過使用示波器測(cè)量按鍵事件觸發(fā)LED電平翻轉(zhuǎn)的實(shí)際耗時(shí)結(jié)合系統(tǒng)延時(shí)與GPIO輸出延時(shí)得出數(shù)據(jù);
(2)系統(tǒng)延遲:根據(jù)Linux-RT性能測(cè)試平均值得出數(shù)據(jù);
(3)GPIO輸出延時(shí):通過使用示波器測(cè)量LED電平翻轉(zhuǎn)的實(shí)際耗時(shí)得出數(shù)據(jù)。

圖1
表 2Linux-RT實(shí)時(shí)性測(cè)試數(shù)據(jù)
Min Latencies (最小值) |
Avg Latencies (平均值) |
Max Latencies (最大值) |
|
CPU空載狀態(tài) | 5us | 7us | 86us |
CPU滿負(fù)荷狀態(tài) | 5us | 9us | 88us |
隔離CPU核心狀態(tài) | 5us | 9us | 38us(CPU3) |
根據(jù)不隔離CPU核心、隔離CPU核心三種狀態(tài)的測(cè)試結(jié)果可知:當(dāng)程序指定至隔離的CPU3核心上運(yùn)行時(shí),Linux系統(tǒng)延遲最低,可有效提高系統(tǒng)實(shí)時(shí)性。故推薦對(duì)實(shí)時(shí)性要求較高的程序(功能)指定至T507-H隔離的CPU核心運(yùn)行。
Linux-RT實(shí)時(shí)性測(cè)試
本次測(cè)試是使用Cyclictest延遲檢測(cè)工具測(cè)試Linux系統(tǒng)實(shí)時(shí)性。Cyclictest是rt-tests測(cè)試套件下的測(cè)試工具,也是rt-tests下使用最廣泛的測(cè)試工具,一般主要用來測(cè)試內(nèi)核的延遲,從而判斷內(nèi)核的實(shí)時(shí)性。Cyclictest主要通過反復(fù)測(cè)量并精確統(tǒng)計(jì)線程的實(shí)際喚醒時(shí)間,以提供有關(guān)系統(tǒng)的延遲信息。它可測(cè)量由硬件、固件和操作系統(tǒng)引起的實(shí)時(shí)系統(tǒng)的延遲。
使用Cyclictest測(cè)試系統(tǒng)實(shí)時(shí)性
基于全志T507-H(硬件平臺(tái):創(chuàng)龍科技TLT507-EVM評(píng)估板),按照創(chuàng)龍科技提供的案例用戶手冊(cè)進(jìn)行操作,使用Cyclictest程序測(cè)試系統(tǒng)實(shí)時(shí)性,得出如下測(cè)試結(jié)果。

圖2Linux-RT-4.9.170內(nèi)核測(cè)試結(jié)果

圖3Linux-4.9.170內(nèi)核測(cè)試結(jié)果
對(duì)比測(cè)試數(shù)據(jù),可看到基于Linux-RT-4.9.170內(nèi)核的系統(tǒng)的延時(shí)更加穩(wěn)定,最大延時(shí)更低,系統(tǒng)實(shí)時(shí)性更佳。
T507-H核心板典型應(yīng)用場(chǎng)景
Linux-RT應(yīng)用案例的分享
rt_gpio_ctrl案例
案例說明
通過創(chuàng)建一個(gè)基本的實(shí)時(shí)線程,在線程內(nèi)觸發(fā)LED的電平翻轉(zhuǎn),同時(shí)程序統(tǒng)計(jì)實(shí)時(shí)線程的調(diào)度延時(shí),并通過示波器測(cè)出LED電平兩次翻轉(zhuǎn)的時(shí)間間隔。由于程序默認(rèn)以最高優(yōu)先級(jí)運(yùn)行,為避免CPU資源被程序完全占用,導(dǎo)致系統(tǒng)被掛起,因此在程序中增加100us的延時(shí)。程序原理大致如下:
(1)在Linux-RT內(nèi)核上創(chuàng)建、使用實(shí)時(shí)線程。
(2)實(shí)時(shí)線程中,計(jì)算出觸發(fā)LED電平翻轉(zhuǎn)的系統(tǒng)調(diào)度延時(shí)。
案例測(cè)試
將可執(zhí)行文件拷貝至評(píng)估板文件系統(tǒng),并執(zhí)行如下命令運(yùn)行測(cè)試程序,再按"Ctrl + C"退出測(cè)試,串口終端將打印程序統(tǒng)計(jì)的延時(shí)數(shù)據(jù),如下圖所示。
Target# ./rt_gpio_ctrl 100

圖5
同時(shí)使用示波器捕捉LED兩次電平翻轉(zhuǎn)之間的間隔就對(duì)應(yīng)上線程調(diào)度的延遲。算出電平兩次翻轉(zhuǎn)的時(shí)間間隔為?x = 114us,如下圖所示。由于程序中默認(rèn)增加了100us的時(shí)間延時(shí)。因此,實(shí)際延時(shí)應(yīng)為:114us-100us = 14us,與程序統(tǒng)計(jì)打印的Latency results平均值相近。

圖6
rt_input案例
案例說明
通過創(chuàng)建一個(gè)基本的實(shí)時(shí)線程,在線程內(nèi)打開input設(shè)備,并對(duì)按鍵事件進(jìn)行監(jiān)聽,然后觸發(fā)LED的電平翻轉(zhuǎn),再通過示波器測(cè)量按鍵觸發(fā)到LED電平翻轉(zhuǎn)期間的實(shí)際耗時(shí)。程序原理大致如下:
(1)在Linux-RT內(nèi)核上創(chuàng)建、使用實(shí)時(shí)線程。
(2)實(shí)時(shí)線程中對(duì)打開的input設(shè)備節(jié)點(diǎn)進(jìn)行按鍵事件監(jiān)聽,通過判斷監(jiān)聽得到的按鍵事件來觸發(fā)LED的電平翻轉(zhuǎn)。
案例測(cè)試
將可執(zhí)行文件拷貝至評(píng)估板文件系統(tǒng),并執(zhí)行如下命令運(yùn)行測(cè)試程序,程序運(yùn)行后按下KEY3用戶按鍵點(diǎn)亮LED,松開按鍵后LED熄滅,再按"Ctrl + C"退出測(cè)試程序。
Target#./rt_input /dev/input/event8

圖7
分別使用示波器探頭1測(cè)量按鍵KEY3引腳1,使用示波器探頭2測(cè)量LED。
從按鍵下降沿觸發(fā)的開始(下圖黃線)到LED
上升沿觸發(fā)
的完成(下圖藍(lán)線)的時(shí)間間隔,即為系統(tǒng)實(shí)時(shí)捕獲按鍵輸入時(shí)間并響應(yīng)觸發(fā)LED電平翻轉(zhuǎn)的時(shí)間?x,從圖中可看到?x = 76us。

圖8
審核編輯 黃宇
-
示波器
+關(guān)注
關(guān)注
113文章
6606瀏覽量
188510 -
Linux
+關(guān)注
關(guān)注
87文章
11479瀏覽量
213065 -
GPIO
+關(guān)注
關(guān)注
16文章
1279瀏覽量
53715 -
全志
+關(guān)注
關(guān)注
24文章
282瀏覽量
53769
發(fā)布評(píng)論請(qǐng)先 登錄
國(guó)產(chǎn)工業(yè)CPU平臺(tái),米爾基于全志T507-H開發(fā)板的實(shí)時(shí)性分析與測(cè)試

實(shí)測(cè)14us,Linux-RT實(shí)時(shí)性能及開發(fā)案例分享—基于全志T507-H國(guó)產(chǎn)平臺(tái)
基于全志T507-H的Linux-RT實(shí)時(shí)性測(cè)試案例分享
國(guó)產(chǎn)!全志科技T507-H工業(yè)核心板( 4核ARM Cortex-A5)規(guī)格書
基于全志T507-H的Linux-RT + Igh EtherCAT主站案例分享
實(shí)測(cè)14us,Linux-RT實(shí)時(shí)性能及開發(fā)案例分享—基于全志T507-H國(guó)產(chǎn)平臺(tái)
全志T507-H國(guó)產(chǎn)平臺(tái)Ubuntu系統(tǒng)正式發(fā)布,讓您的應(yīng)用開發(fā)更便捷!
全志A40i開發(fā)板——Linux-RT內(nèi)核應(yīng)用開發(fā)教程(2)
第一視角體驗(yàn)搭載全志T507-H的開發(fā)板MYD-YT507H開發(fā)板
國(guó)產(chǎn)工業(yè)CPU平臺(tái),米爾基于全志T507-H開發(fā)板的實(shí)時(shí)性分析與測(cè)試
米爾推出基于全志T507-H的MYC-YT507H核心板
【資料分享】全志科技T507-H工業(yè)核心板規(guī)格書
基于全志T507-H的Linux-RT + Igh EtherCAT主站案例分享

評(píng)論