本文介绍瑞芯微RK3588芯片平台RT-Linux系统实时性及硬件中断延迟测试,基于触觉智能RK3588核心板/开发板演示。
Linux-RT实时性测试
- 测试环境说明
本次测试是使用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内核测试结果汇总:

结论如下:对比RK3588平台Preempt_RT与Xenomai RT两大实时性内核数据,Xenomai RT在负载情况下险胜Preempt_RT,整体表现不相上下。
触觉智能作为专业RK方案商,不仅RK3588这款还测试了RK3576等多款芯片平台,详细可关注往期文章浏览。
Linux-RT硬件中断延迟测试
- 测试基本原理
基于Preempt_RT内核在隔离CPU的情况下,使用一个GPIO引脚(简称GPIO1)作为中断输入,使用另一个GPIO引脚(简称GPIO2)作为响应中断输出,当GPIO1接收到信号触发中断后立即控制GPIO2输出,使用示波器抓取“触发信号”与“响应信号”之间的时间差(简称中断延迟)。
- 测试结果
(1)配置隔离CPU,配置GPIO1作为按键输入(中断信号输入),配置GPIO2作为LED输出(中断响应信号输出)
chosen: chosen { bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTUUID=614e0000-0000 rw rootwait isolcpus=3"; };
--- a/arch/arm64/boot/dts/rockchip/ido-evb3588-v1b.dtsi +++ b/arch/arm64/boot/dts/rockchip/ido-evb3588-v1b.dtsi @@ -290,12 +290,32 @@ WIFI,poweren_gpio = <&pca9539 2 GPIO_ACTIVE_HIGH>; status = "okay"; }; - + + 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 = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>; + debounce-interval = <0>; + }; + }; + leds: leds { status = "okay"; compatible = "gpio-leds"; pinctrl-names = "default"; - pinctrl-0 =<&leds_gpio>; + pinctrl-0 =<&leds_gpio &led1_gpio>; + + user_led0: user-led0 { + gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; pcie_clk_en { gpios = <&pca9539 1 GPIO_ACTIVE_HIGH>; @@ -816,7 +836,18 @@ //<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>, <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; }; + + led1_gpio: led1-gpio { + rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; + }; }; + + keys { + key1_user: key1-user { + rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; +
例程通过创建一个基本的实时线程,在线程内实现打开GPIO1对应的按键input设备并对按键事件进行监听从而触发GPIO2对应的LED的亮灭控制:

完成交叉编译应用程序后,执行测试程序等待接收触发信号,硬件使用示波器捕获触发信号。

红色信号为GPIO1,黄色信号为GPIO2,示波器实测中断延迟为:21us。
-
实时性
+关注
关注
0文章
23浏览量
10266 -
核心板
+关注
关注
6文章
1343浏览量
31741 -
RK3588
+关注
关注
8文章
490浏览量
7045
发布评论请先 登录
探索巅峰性能 |迅为 RK3588开发板深度剖析
迅为RK3588开发板深度剖析丨首选的性能
探索巅峰性能 |迅为瑞芯微RK3588开发板/核心板深度剖析
迅为瑞芯微RK3588开发板深度剖析丨首选的性能
RK3588核心板硬件手册
极小极轻LGA封装 |RK3588核心板SOM-3588-LGA现货发售!

RK3588核心板/开发板RT-Linux系统实时性及硬件中断延迟测试
评论