全志科技T3/A40i核心模塊支持實(shí)時(shí)PREEMPTLinux,助力工業(yè)機(jī)器人控制!
盈鵬飛嵌入式基于全志科技T3/A40i處理器的工控板SBC-X40I,其接口資源豐富,可引出雙路網(wǎng)口、單路CANBUS、三路USB、一路RS485等通信接口,板載Bluetooth、WIFI模塊,同時(shí)引出LVDS LCD、TFT LCD、HDMI OUT、H/P OUT等音視頻多媒體接口,支持雙屏異顯、1080P@45fps H.264視頻硬件編碼、1080P@60fps H.264視頻硬件解碼,并支持SATA大容量存儲(chǔ)接口。
A40i核心板(CoM-X40I)可采用100%國(guó)產(chǎn)元器件方案,并經(jīng)過(guò)專業(yè)的PCB Layout和高低溫測(cè)試驗(yàn)證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境,應(yīng)用于能源電力、軌道交通、工業(yè)控制、工業(yè)網(wǎng)關(guān)、儀器儀表、安防監(jiān)控等典型領(lǐng)域。
Linux-RT內(nèi)核簡(jiǎn)介
盈鵬飛嵌入式提供的Linux-RT內(nèi)核應(yīng)用了開(kāi)源的RT PREEMPT機(jī)制進(jìn)行補(bǔ)丁。PREEMPT_RT補(bǔ)丁的關(guān)鍵是最小化不可搶占的內(nèi)核代碼量,同時(shí)最小化必須更改的代碼量,以便提供這種附加的可搶占性。PREEMPT_RT補(bǔ)丁利用Linux內(nèi)核的SMP功能來(lái)添加這種額外的搶占性,而不需要完整的內(nèi)核重寫。Linux-RT內(nèi)核增加PREEMPT_RT補(bǔ)丁后,增加了系統(tǒng)響應(yīng)的確定性和實(shí)時(shí)性,但是代價(jià)是CPU性能降低。
Linux-RT內(nèi)核與普通Linux內(nèi)核相比,幾個(gè)主要的相同之處是:
(1) 具有相同的開(kāi)發(fā)生態(tài)系統(tǒng),包括相同工具鏈、文件系統(tǒng)和安裝方法,以及相同的POSIX API等。
(2) 仍然存在內(nèi)核空間和用戶空間的劃分。
(3)Linux應(yīng)用程序在用戶空間中運(yùn)行。
Linux-RT內(nèi)核與普通Linux內(nèi)核在常規(guī)編程方式上的幾個(gè)主要不同之處是:
(1) 調(diào)度策略。
(2) 優(yōu)先級(jí)和內(nèi)存控制。
(3) 基于Linux-RT內(nèi)核的應(yīng)用程序使用了調(diào)度策略后,系統(tǒng)將根據(jù)調(diào)度策略對(duì)其進(jìn)行調(diào)優(yōu)。
Linux系統(tǒng)實(shí)時(shí)性測(cè)試
本章節(jié)主要介紹使用Cyclictest延遲檢測(cè)工具測(cè)試Linux系統(tǒng)實(shí)時(shí)性的方法。Cyclictest是rt-tests測(cè)試套件下的一個(gè)測(cè)試工具,也是rt-tests下使用最廣泛的測(cè)試工具,一般主要用來(lái)測(cè)試內(nèi)核的延遲,從而判斷內(nèi)核的實(shí)時(shí)性。
盈鵬飛嵌入式已經(jīng)提供了Linux-RT內(nèi)核,可直接燒寫到SBC-X40I主板上,終端運(yùn)行信息如下:
Cyclictest工具簡(jiǎn)介
Cyclictest常用于實(shí)時(shí)系統(tǒng)的基準(zhǔn)測(cè)試,是評(píng)估實(shí)時(shí)系統(tǒng)相對(duì)性能的最常用工具之一。Cyclictest反復(fù)測(cè)量并精確統(tǒng)計(jì)線程的實(shí)際喚醒時(shí)間,以提供有關(guān)系統(tǒng)的延遲信息。它可測(cè)量由硬件、固件和操作系統(tǒng)引起的實(shí)時(shí)系統(tǒng)的延遲。
為了測(cè)量延遲,Cyclictest運(yùn)行一個(gè)非實(shí)時(shí)主線程(調(diào)度類SCHED_OTHER),該線程以定義的實(shí)時(shí)優(yōu)先級(jí)(調(diào)度類SCHED_FIFO)啟動(dòng)定義數(shù)量的測(cè)量線程。測(cè)量線程周期性地被一個(gè)到期的計(jì)時(shí)器(循環(huán)報(bào)警)所定義的間隔喚醒,隨后計(jì)算有效喚醒時(shí)間,并通過(guò)共享內(nèi)存將其傳遞給主線程。主線程統(tǒng)計(jì)延遲值并打印最小、最大和平均延遲時(shí)間。
參考鏈接:https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start?s[]=cyclictest。
編譯Cyclictest工具
盈鵬飛嵌入式提供Cyclictes的代碼-rt-tests.tar.gz,您可以直接在我們的開(kāi)發(fā)環(huán)境下直接編譯。
Host#tar -zxf rt-tests.tar.gz
請(qǐng)先確保已參考Linux系統(tǒng)使用手冊(cè)編譯過(guò)LinuxSDK,構(gòu)建A40i處理器對(duì)應(yīng)的GCC編譯器。進(jìn)入解壓生成的rt-tests源文件目錄執(zhí)行如下命令,使用LinuxSDK開(kāi)發(fā)包目錄下的GCC編譯器進(jìn)行案例編譯。編譯完成后,將在當(dāng)前目錄下生成可執(zhí)行文件。
Host#source env.sh
這個(gè)編譯的環(huán)境env.sh如下:
Host#make
編譯完成后,將在當(dāng)前路徑下生成cyclictest可執(zhí)行文件,將其復(fù)制到評(píng)估板文件系統(tǒng)。
使用Cyclictest測(cè)試系統(tǒng)實(shí)時(shí)性
本次測(cè)試基于Linux-RT-3.10.65內(nèi)核實(shí)時(shí)性。
執(zhí)行如下命令使用Cyclictest程序測(cè)試系統(tǒng)實(shí)時(shí)性。
Target#./cyclictest -a-t-n-p99
Linux-RT-3.10.65內(nèi)核測(cè)試結(jié)果Cyclictest測(cè)試結(jié)果說(shuō)明
可看到基于Linux-RT-3.10.65內(nèi)核的系統(tǒng)的延時(shí)更加穩(wěn)定,最大延時(shí)更低,系統(tǒng)實(shí)時(shí)性更佳。
Cyclictest命令參數(shù)解析可執(zhí)行"./cyclictest --help"查看,如下圖所示。
-
全志A40i
+關(guān)注
關(guān)注
0文章
30瀏覽量
991
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論