女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

全國產!瑞芯微 RK3576 ARM 八核 2.2GHz 工業開發板—Linux-RT應用開發案例

Tronlong創龍科技 ? 來源:Tronlong創龍科技 ? 作者:Tronlong創龍科技 ? 2025-06-23 10:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

本文主要通過Cyclictest延遲檢測工具,以及基于Linux-RT的應用程序評估Linux-RT系統的實時性,適用開發環境如下:

Windows開發環境:Windows 7 64bit、Windows 10 64bit

Linux開發環境:VMware16.2.5、Ubuntu22.04.5 64bit

U-Boot:U-Boot-2017.09

Kernel:Linux-6.1.115、Linux-RT-6.1.115

LinuxSDK:LinuxSDK-[版本號](基于rk3576_linux6.1_release_v1.1.0)

Linux-RT性能測試結果如下表所示。

表 1

wKgZPGhYu4GAWC0gABzEphOZNW0348.png

我司默認使用的是Linux內核,同時提供了Linux-RT內核位于產品資料“4-軟件資料LinuxKernelimagelinux-6.1.115-[版本號]-[Git系列號]”目錄下。請按照如下方法替換為Linux-RT內核。

將Linux-RT內核鏡像boot-rt.img拷貝至評估板文件系統任意目錄下。執行如下命令,替換內核鏡像至Linux系統啟動卡,評估板重啟生效。

備注:mmcblk1p3為Linux系統啟動卡對應的設備節點,如需固化至eMMC,請將設備節點修改為mmcblk0p3。

Target# dd if=boot-rt.img of=/dev/mmcblk1p3

Target# sync

Target# reboot

wKgZPGhYu42AWlLrAAAYZNXt6JA459.png圖 1

wKgZO2hYu5qAFHLEAAArwFJtspw277.png圖 2?Linux-RT內核

我司提供的Linux-RT內核與Linux內核測試方法一致,請參考《評估板測試手冊》進行測試即可,Linux-RT內核支持的外設接口如下表所示。

表 2

wKgZO2hYu8KAKaWsAAAXdhmPPIA129.png

我司提供的Linux-RT內核應用了開源的RT PREEMPT機制進行補丁。PREEMPT_RT補丁的關鍵是最小化不可搶占的內核代碼量,同時最小化必須更改的代碼量,以便提供這種附加的可搶占性。Linux-RT內核增加PREEMPT_RT補丁后,增加了系統響應的確定性和實時性,但是代價是CPU性能降低。

Linux-RT內核與普通Linux內核相比,幾個主要的相同之處是:

具有相同的開發生態系統,包括相同工具鏈、文件系統和安裝方法,以及相同的POSIX API等。

仍然存在內核空間和用戶空間的劃分。

Linux應用程序在用戶空間中運行。

Linux-RT內核與普通Linux內核在常規編程方式上的幾個主要不同之處是:

調度策略。

優先級和內存控制。

基于Linux-RT內核的應用程序使用了調度策略后,系統將根據調度策略對其進行調優。

Linux系統實時性測試

本章節主要介紹使用Cyclictest延遲檢測工具測試Linux系統實時性的方法。Cyclictest是rt-tests測試套件下的一個測試工具,也是rt-tests下使用最廣泛的測試工具,一般主要用來測試內核的延遲,從而判斷內核的實時性。

Cyclictest常用于實時系統的基準測試,是評估實時系統相對性能的最常用工具之一。Cyclictest反復測量并精確統計線程的實際喚醒時間,以提供有關系統的延遲信息。它可測量由硬件、固件和操作系統引起的實時系統的延遲。

為了測量延遲,Cyclictest運行一個非實時主線程(調度類SCHED_OTHER),該線程以定義的實時優先級(調度類SCHED_FIFO)啟動定義數量的測量線程。測量線程周期性地被一個到期的計時器(循環報警)所定義的間隔喚醒,隨后計算有效喚醒時間,并通過共享內存將其傳遞給主線程。主線程統計延遲值并打印最小、最大和平均延遲時間。

參考鏈接:https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start?s[]=cyclictest。

Linux、Linux-RT實時性對比

本次測試結合Iperf和Cyclictest工具,對比測試基于Linux-RT-6.1.115內核和Linux-6.1.115內核的系統實時性能。此處使用Iperf工具不斷觸發系統中斷,提高中斷處理負載,以便更好測試系統實時特性。

在Ubuntu執行如下命令查看IP地址,并以服務器模式啟動Iperf測試。

Host# ifconfig

Host# iperf3 -s

wKgZO2hYvHeAByKQAAE-mg4wh3k306.png圖 3

分別使用Linux-RT-6.1.115內核和Linux-6.1.115內核啟動評估板,執行如下命令以客戶端模式啟動Iperf,并連接至服務器端(Ubuntu系統)。"192.168.13.66"為Ubuntu的IP地址,"-t3600"設置測試時間為3600秒,"&"表示讓程序在后臺運行。

Target# iperf3 -c 192.168.13.66 -d -t3600 > /dev/null 2>&1 &

wKgZO2hYvKaACFMKAAAPKbTtlds393.png圖 4

評估板文件系統默認已提供Cyclictest工具,進入評估板文件系統,執行如下命令使用Cyclictest工具測試系統實時性。

Target# cyclictest -t5 -p98 -m -D10m

wKgZO2hYvLeAWm5jAAAuU8GZmYE659.png圖 5?Linux-RT-6.1.115內核測試結果

wKgZO2hYvL-AUKDuAAAuDcof_pI690.png圖 6?Linux-6.1.115內核測試結果

表 3Cyclictest測試結果解析

wKgZPGhYvMmAJ3kmAAmfv3-HZ6E018.png

對比測試數據,可看到基于Linux-RT-6.1.115內核的系統的延遲更加穩定,平均延遲、最大延遲更低,系統實時性更佳。

Cyclictest命令參數解析可執行"cyclictest --help"查看,如下圖所示。

wKgZPGhYvNWAOFtoAADmlYEwdAg452.png圖 7

wKgZPGhYvOeAVYa7AABjhbRDDdo682.png圖 8

Linux-RT性能測試

本次測試分別在CPU空載、滿負荷(運行stress壓力測試工具)、隔離CPU核心的情況下,對比評估Linux-RT內核的系統實時性。

CPU空載狀態

評估板上電啟動,進入評估板文件系統執行如下命令,修改內核printk日志等級,避免內核打印信息影響實時測試。

Target# echo 1 > /proc/sys/kernel/printk

調整內存分配策略為“1”,禁用內存過度使用。避免出現OOM(Out-of-Memory) Killer攻擊某些進程而產生延遲,影響測試結果。

Target# echo 1> /proc/sys/vm/overcommit_memory

wKgZO2hYvRSAdhayAAAOatwE2ZI363.png圖 9

執行如下命令,基于CPU空載狀況下測試系統的實時性。測試指令需運行12小時,請保持評估板長時間穩定工作,測試完成后將生成統計結果no_load_output文件。

Target# cyclictest -m -Sp99 -i1000 -h800 -D12h -q>no_load_output

wKgZPGhYvRyAGJdyAAATCJ7uIuw468.png圖 10

參數解析:

-m:鎖定當前和將來的內存分配;

-S:采用標準SMP測試;

-p:設置線程優先級;

-i:設置線程的基本間隔;

-h:運行后將延遲直方圖轉儲至標準輸出,亦可指定要跟蹤的最大延時時間(以微秒為單位);

-D:指定測試運行時長,附加m(分鐘)、h(小時)、d(天)指定;

-q:運行時不打印相關信息;

CPU滿負荷狀態

評估板上電啟動,進入評估板文件系統執行如下命令,修改內核printk日志等級,避免內核打印信息影響實時測試。

Target# echo 1 > /proc/sys/kernel/printk

調整內存分配策略為“1”,禁用內存過度使用。避免出現OOM(Out-of-Memory) Killer攻擊某些進程而產生延遲,影響測試結果。

Target# echo 1> /proc/sys/vm/overcommit_memory

wKgZPGhYvTWARCsgAAAOWXJHQB0731.png圖 11

執行如下命令,運行stress壓力測試工具,使得CPU處于滿負荷狀態。再使用Cyclictest工具測試CPU滿負荷狀態下的系統實時性能。測試指令需運行12小時,請保持評估板長時間穩定工作,測試完成后將生成統計結果overload_output文件。

Target# stress --cpu 8--io 8--vm 8--vm-bytes 64M --timeout 43200s &

Target# cyclictest -m -Sp99 -i1000 -h800 -D12h -q > overload_output

wKgZO2hYvTyAUdROAAAoL-BswJE395.png圖 12

參數解析:

--cpu:指定壓力測試的進程個數;

--io:指定I/O測試的進程個數;

--vm:指定內存測試的進程個數;

--vm-bytes:指定每個內存測試進程中分配內存的大小;

--timeout:指定測試時長;

隔離CPU核心狀態

本次測試以隔離CPU3核心為例,通過降低系統上所運行的其他進程對隔離CPU3產生的延遲影響,確保CPU3進程的正常運行,進而評估Linux-RT內核的系統實時性。

評估板上電啟動后,在U-Boot倒計時結束之前長按"Ctrl + C"鍵進入U-Boot命令行模式,執行如下命令,修改環境變量,隔離CPU3核心。

備注:如從eMMC啟動,請將命令中的"sd"修改為"emmc"。

U-Boot# setenvbootargs"storagemedia=sdandroidboot.storagemedia=sdandroidboot.mode=normalisolcpus=3"

U-Boot# saveenv

U-Boot# reset

wKgZPGhYvVSAHA0tAABv3hMuokM664.png圖 13

進入評估板文件系統,執行如下命令,查看環境變量是否設置成功。

Target# cat /proc/cmdline

wKgZPGhYvWaATBtHAAArv1OtSuE974.png圖 14

執行如下命令,修改內核printk日志等級,避免內核打印信息影響實時測試。

Target# echo 1 > /proc/sys/kernel/printk

調整內存分配策略為“1”,禁用內存過度使用。避免出現OOM(Out-of-Memory) Killer攻擊某些進程而產生延遲,影響測試結果。

Target# echo 1> /proc/sys/vm/overcommit_memory

wKgZO2hYvXKAduGfAAAN3nTv6h4969.png圖 15

執行如下命令,運行stress壓力測試工具,使得CPU處于滿負荷狀態。再使用taskset工具將cyclictest測試程序運行在CPU3核心,測試CPU3核心滿負荷狀態下的系統實時性能。測試指令需運行12小時,請保持評估板長時間穩定工作,測試完成后將生成統計結果iso_overload_output文件。

Target# stress --cpu 8--io 8--vm 8--vm-bytes 64M--timeout 43200s &

Target# taskset -c 0-7cyclictest -m -Sp99 -i1000 -h800 -D12h -q > iso_overload_output

wKgZPGhYvX2AIKucAAArxk2WRiI378.png圖 16

統計結果分析

我司已提供腳本文件get_histogram.sh用于繪制統計結果直方圖,位于產品資料“4-軟件資料Demolinux-rt-demosCyclictestbin”目錄下,請將該腳本文件拷貝至Ubuntu工作目錄下。

執行如下命令,賦予get_histogram.sh腳本可執行權限。

Host# chmod a+x get_histogram.sh

wKgZPGhYvY6AcO5GAABlCCidzyk114.png圖 17

在Ubuntu系統執行如下命令,安裝gnuplot工具。

Host# sudo apt-get install gnuplot -y

wKgZPGhYvZeAGIWuAAGxMdKJFP4301.png圖 18

CPU空載狀態

請將CPU空載狀態下的統計結果no_load_output文件拷貝至Windows工作目錄,使用Windows文本工具打開該文件并拖動至文件末尾,可查看Linux系統每個核心(CPU0~CPU7)的最小延遲(MinLatencies)、平均延遲(AvgLatencies)、最大延遲(MaxLatencies)統計結果。

wKgZPGhYvaWAECBWAABmdz60g3o421.png圖 19

請將CPU空載狀態下的統計結果no_load_output文件拷貝至Ubuntu,存放在get_histogram.sh同一目錄下。

執行如下命令,拷貝并修改CPU空載狀態下的統計結果文件名為output,并生成直方圖文件plot.png,請將其拷貝至Windows下打開。

備注:滿負荷狀態統計結果文件overload_output與隔離CPU核心狀態統計結果文件iso_overload_output亦需將文件名修改為output方可生成直方圖文件plot.png。

Host# cp no_load_output output

Host# ./get_histogram.sh

wKgZPGhYvcSAfeKbAAD0HF5dD6A331.png圖 20

wKgZPGhYvdaALi-4ABJyl9iG1cY416.png圖 21

根據統計結果no_load_output文件數據以及結合直方圖,可得主要數據如下表。本次測試中,CPU7核心Max Latencies值最大,為83us,CPU2核心的Max Latencies值最小,為29us。

備注:CPU0~CPU3為Cortex-A53核心,CPU4~CPU7為Cortex-A72核心。由于CPU4~CPU7核心的重調度中斷數量遠大于CPU0~CPU3核心,因此CPU0~CPU3的測試結果會比CPU4~CPU7實時性更好。測試數據與實際測試環境有關,僅供參考。

表 4

wKgZO2hYvemAI4--AASb_m2yHt8855.png

CPU滿負荷狀態

參考如上方法,分析CPU滿負荷狀態下的統計結果如下所示。本次測試中,CPU4核心Max Latencies值最大,為137us,CPU7核心的Max Latencies值最小,為29us。

wKgZPGhYvfeAAuIBABKJC_sCQ5g042.png圖 22

表 5

wKgZO2hYvgOASUWIAARLIWlv7ao142.png

隔離CPU核心狀態

參考如上方法,分析隔離CPU核心狀態下的統計結果如下所示。本次測試中,CPU4核心核心Max Latencies值最大,為124us,隔離CPU3核心的Max Latencies值相比CPU空載狀態、CPU滿負荷狀態時CPU3核心的Max Latencies值最小,為9us。

wKgZPGhYvhCAI1ytABIjg97HQAk657.png圖 23

表 6

wKgZO2hYviKAROJ4AARzgqkUC2A655.png

根據CPU空載、CPU滿負荷、隔離CPU核心三種狀態的測試結果可知:當程序指定至隔離的CPU3核心上運行時,Linux系統延遲降低,可有效提高系統實時性。故推薦對實時性要求較高的程序(功能)指定至隔離的CPU核心運行。

由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11496

    瀏覽量

    213244
  • 開發板
    +關注

    關注

    25

    文章

    5622

    瀏覽量

    103575
  • 瑞芯微
    +關注

    關注

    25

    文章

    561

    瀏覽量

    52310
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    全國產 RK3576 ARM 2.2GHz 工業開發板Linux應用開發手冊

    創龍科技 TL3576-EVM 是一款基于 RK3576J/RK3576高性能處理器設計的
    的頭像 發表于 06-25 16:44 ?203次閱讀
    <b class='flag-5'>全國產</b>!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3576</b> <b class='flag-5'>ARM</b> <b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>2.2GHz</b> <b class='flag-5'>工業</b><b class='flag-5'>開發板</b>—<b class='flag-5'>Linux</b>應用<b class='flag-5'>開發</b>手冊

    全國產 RK3576 ARM 2.2GHz 工業開發板Linux開發環境搭建

    創龍科技 TL3576-EVM 是一款基于 RK3576J/RK3576高性能處理器設計的
    的頭像 發表于 06-25 10:17 ?102次閱讀
    <b class='flag-5'>全國產</b>!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3576</b> <b class='flag-5'>ARM</b> <b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>2.2GHz</b> <b class='flag-5'>工業</b><b class='flag-5'>開發板</b>—<b class='flag-5'>Linux</b><b class='flag-5'>開發</b>環境搭建

    全國產 RK3576 ARM 2.2GHz 工業開發板Linux系統使用手冊

    創龍科技 TL3576-EVM 是一款基于 RK3576J/RK3576高性能處理器設計的
    的頭像 發表于 06-24 10:50 ?187次閱讀
    <b class='flag-5'>全國產</b>!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3576</b> <b class='flag-5'>ARM</b> <b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>2.2GHz</b> <b class='flag-5'>工業</b><b class='flag-5'>開發板</b>—<b class='flag-5'>Linux</b>系統使用手冊

    全國產 RK3576 ARM 2.2GHz 工業開發板—LVGL應用開發案

    本文主要基于評估演示LVGL應用開發案例,適用開發環境如下。創龍科技 TL3576-EVM 是一款基于
    的頭像 發表于 06-23 15:17 ?146次閱讀
    <b class='flag-5'>全國產</b>!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3576</b> <b class='flag-5'>ARM</b> <b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>2.2GHz</b> <b class='flag-5'>工業</b><b class='flag-5'>開發板</b>—LVGL應用<b class='flag-5'>開發案</b>例

    基于RK3576國產ARM2.2GHz A72 工業評估——Docker容器部署方法說明

    創龍科技TL3576-MiniEVM是一款基于RK3576J/RK3576高性能處理器設計
    的頭像 發表于 04-18 10:18 ?424次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3576</b><b class='flag-5'>國產</b><b class='flag-5'>ARM</b><b class='flag-5'>八</b><b class='flag-5'>核</b><b class='flag-5'>2.2GHz</b> A72 <b class='flag-5'>工業</b>評估<b class='flag-5'>板</b>——Docker容器部署方法說明

    國產3576-Mini(82.2GHz工業評估規格書

    創龍科技TL3576-MiniEVM是一款基于RK3576J/RK3576高性能處理器設計
    的頭像 發表于 04-09 17:54 ?391次閱讀
    <b class='flag-5'>國產</b>!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>3576</b>-Mini(8<b class='flag-5'>核</b><b class='flag-5'>2.2GHz</b>)<b class='flag-5'>工業</b>評估<b class='flag-5'>板</b>規格書

    RK3576,82.2GHz+6T算力NPU工業核心說明書

    創龍科技SOM-TL3576-S是一款基于RK3576J/RK3576高性能處理器設計的4
    的頭像 發表于 04-09 09:46 ?2735次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3576</b>,8<b class='flag-5'>核</b><b class='flag-5'>2.2GHz</b>+6T算力NPU<b class='flag-5'>工業</b>核心<b class='flag-5'>板</b>說明書

    國產開發板的端側AI測評-基于米爾RK3576

    國產自主可控必須搞起來。那與非網本期內容就跟自主可控強關聯——評測一款基于國產SoC的板卡,由米爾電子推出的
    發表于 02-14 16:29

    迅為電子推出iTOP-RK3576開發板

    隨著人工智能、物聯網和邊緣計算的飛速發展,迅為公司重磅推出iTOP-RK3576開發板。這款開發板搭載
    的頭像 發表于 01-15 17:22 ?825次閱讀

    【米爾RK3576開發板評測】+項目名稱【米爾RK3576開發板評測】一個視頻和你共同認識一下米爾RK3576開發板

    收到米爾RK3576開發板后,也對米爾RK3576開發板進行了了解,米爾這款開發板真的很不錯,下面是官方的一些參數介紹: MYC-LR
    發表于 12-18 20:50

    國產RK3576@2.2GHz+6T NPU)工業核心規格書

    本帖最后由 Tronlong創龍科技 于 2024-11-28 17:00 編輯 1 核心簡介 創龍科技SOM-TL3576是一款基于
    發表于 11-28 16:58

    國產RK3576@2.2GHz+6T NPU)工業開發板規格書

    本帖最后由 Tronlong創龍科技 于 2024-11-28 16:54 編輯 1 評估簡介 創龍科技TL3576-EVM是一款基于
    發表于 11-28 16:52

    追加名額丨米爾RK3576開發板有獎試用

    米爾與合作發布的新品基于RK3576應用
    的頭像 發表于 11-22 01:00 ?599次閱讀
    追加名額丨米爾<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>有獎試用

    有獎丨米爾 RK3576開發板免費試用

    米爾與合作發布的新品基于RK3576應用
    的頭像 發表于 11-12 01:00 ?752次閱讀
    有獎丨米爾 <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>免費試用

    米爾RK3576開發板特惠活動!

    近日,米爾電子發布基于RK3576核心開發板RK
    的頭像 發表于 11-12 01:00 ?790次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>特惠活動!