本文介紹瑞芯微RK3562芯片平臺RT-Linux系統實時性及硬件中斷延遲測試,基于觸覺智能EVB3562開發板,歷經72小時多條件詳細測試!
Linux-RT實時性測試
- 測試環境說明
1、開發板型號:IDOEVB3562-V2,參考網盤提供的《IDO-EVB3562-V2 RT-Linux使用手冊》文檔。
2、使用Cyclictest延遲檢測工具測試Linux系統實時性。Cyclictest 是一款專門用于測試和評估系統實時性(Real-Time)的工具,主要用于測量 Linux 系統中線程調度的延遲(即從線程被喚醒到實際開始執行之間的時間差)。它是 rt-tests 工具集的核心組件之一,廣泛應用于實時系統(如 RT-Linux)的性能驗證和優化。
- Preempt_RT
使用Cyclictest程序測試系統實時性,開發板Linux內核版本:Kernel 5.10.226。
空載測試12小時:

負載測試12小時:

負載隔離CPU測試12小時:

測試結果匯總:

- Xenomai RT
空載測試12小時:

負載測試12小時:

負載隔離CPU測試12小時:

Xenomai RT內核測試結果匯總:

結論如下:對比Preempt_RT與Xenomai RT的實時性數據,Preempt RT內核的延時更低。實際應用推薦使用Preempt RT內核,若對更多RK芯片結果感興趣可關注觸覺智能詳細了解。
Linux-RT硬件中斷延遲測試
- 測試基本原理
基于Preempt_RT內核在隔離CPU的情況下,使用一個GPIO引腳(簡稱GPIO1)作為中斷輸入,使用另一個GPIO引腳(簡稱GPIO2)作為響應中斷輸出,當GPIO1接收到信號觸發中斷后立即控制GPIO2輸出,使用示波器抓取“觸發信號”與“響應信號”之間的時間差(簡稱中斷延遲)。
- 測試方法
(1)配置隔離CPU,配置GPIO1作為按鍵輸入(中斷信號輸入),配置GPIO2作為LED輸出(中斷響應信號輸出)
chosen: chosen { bootargs = "earlycon=uart8250,mmio32,0xff210000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rw rootwait isolcpus=3"; };
--- a/kernel-5.10/arch/arm64/boot/dts/rockchip/ido-evb3562-v2a.dtsi +++ b/kernel-5.10/arch/arm64/boot/dts/rockchip/ido-evb3562-v2a.dtsi @@ -52,6 +52,21 @@ }; }; + gpio_keys: gpio-keys { + status = "okay"; + compatible = "gpio-keys"; + autorepeat; + pinctrl-names = "default"; + pinctrl-0 = <&key1_user>; + + user_key1 { + label = "user-key1"; + linux,code = ; + gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; + debounce-interval = <0>; + }; + }; + bt_sco: bt-sco { status = "okay"; compatible = "delta,dfbmcs320"; @@ -251,7 +266,12 @@ status = "okay"; compatible = "gpio-leds"; pinctrl-names = "default"; - pinctrl-0 =<&leds_gpio>; + pinctrl-0 =<&leds_gpio &led1_gpio>; + + user_led0: user-led0 { + gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; heartbeat { gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>; @@ -410,8 +430,17 @@ <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>, <2 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; }; + + led1_gpio: led1-gpio { + rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; }; + keys { + key1_user: key1-user { + rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; };
例程通過創建一個基本的實時線程,在線程內實現打開GPIO1對應的按鍵input設備并對按鍵事件進行監聽從而觸發GPIO2對應的LED的亮滅控制。例程代碼參考如下:


完成交叉編譯應用程序后,執行測試程序等待接收觸發信號,硬件使用示波器捕獲觸發信號。

- 測試結果
GPIO1使用杜邦線接入3.3V模擬中斷觸發信號,示波器測試中斷延遲為:58us。
-
RT
+關注
關注
0文章
74瀏覽量
40715 -
RTlinux
+關注
關注
0文章
7瀏覽量
7964 -
Xenomai
+關注
關注
0文章
13瀏覽量
8213 -
preempt-rt
+關注
關注
0文章
5瀏覽量
1802 -
RK3562
+關注
關注
0文章
88瀏覽量
612
發布評論請先 登錄
新一代低價開發板芯片RK3562來啦! — 觸覺智能RK3562開發板
觸覺智能RK3562開發板新版強勢亮相

RK3562核心板/開發板RT-Linux系統實時性及硬件中斷延遲測試
評論