【NXP i.MX91】 RT-Linux移植
介绍
实时性系统应用广泛,在工业自动化、医疗设备、汽车电子等领域扮演着十分重要的角色,我们用i.MX91开发板来移植运行RT-Linux,看看它的实时性能如何

实时补丁
下载并应用RT补丁
echo "下载RT补丁..."
cd ~/workspace/myir-imx-linux
wget -O patches-6.6.36-rt35.tar.xz https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6.36-rt35.tar.xz
tar -xvf patches-6.6.36-rt35.tar.xzecho "应用RT补丁..."
for p in $(cat patches/series); doecho " 应用补丁: $p"patch -p1 < patches/$pdone
echo "RT补丁应用完成"
配置和编译实时内核
echo "配置内核..."
make myd_imx91_defconfig
echo "启用PREEMPT_RT配置..."
scripts/config --enable CONFIG_PREEMPT_RT
make olddefconfig
echo "编译内核和模块..."
make -j$(nproc) ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux-
部署实时性kernel
mkdir modules
export INSTALL_MOD_PATH=./modules
make INSTALL_MOD_STRIP=1 modules_installscp arch/arm64/boot/Image arch/arm64/boot/dts/myir/myd-imx91-11x11*.dtb root@192.168.55.142:/root/rt-linux
scp 6.6.36-rt35-g9dee15544528-dirty.tar root@192.168.55.142:/root/rt-linux
tar xf 6.6.36-rt35-g9dee15544528-dirty.tar -C /lib/modules/
重启后实时补丁已经打好(版本带RT标志)

测试工具
克隆rt-tests源码
git clone https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
配置编译rt-tests工具集
unset LD_LIBRARY_PATH
source ~/myd-lmx91-toolchain/environment-setup-armv8a-poky-linux
make CC=aarch64-poky-linux-gcc \\\\CROSS_COMPILE=aarch64-poky-linux- \\\\CFLAGS="--sysroot=$SDKTARGETSYSROOT" \\\\LDFLAGS="--sysroot=$SDKTARGETSYSROOT" 2>/dev/null
开发板运行RT-Linux的性能测试

性能分析
这次测试的关键数据是 最大延迟 (Max Latency) ,它揭示了系统在最坏情况下的表现
| 线程 | 最小延迟 (µs) | 当前延迟 (µs) | 平均延迟 (µs) | 最大延迟 (µs) |
|---|---|---|---|---|
| T: 0 | 6 | 31 | 12 | 84 |
| T: 1 | 6 | 8 | 8 | 58 |
| T: 2 | 6 | 8 | 9 | 80 |
| T: 3 | 7 | 9 | 9 | 43 |
系统实时性数据分析
- 最差情况延迟: 84 微秒 (来自线程0)
- 典型(平均)情况延迟:~9 微秒
工业自动化、汽车电子、医疗设备各个领域的实时性要求和对比
| 领域 | 典型延迟要求 | 你的系统 (84μs) 表现 | 评估 |
|---|---|---|---|
| 工业自动化 | 100μs - 10ms | 远超要求 | 非常适合,尤其擅长高精度运动控制。 |
| 汽车电子 | 50μs - 100ms | 完全满足 | 卓越的性能,可应对核心安全功能。 |
| 医疗设备 | 1ms - 100ms | 完全满足 | 延迟不是问题,但需通过功能安全认证。 |
结论
myd-lmx91系统在具有相当负载(loadavg=2.33)的情况下,依然表现出了卓越的实时性能。84µs的最大延迟表明它能够满足工业自动化、汽车电子和医疗设备等领域的严格实时性要求。
术语
性能指标
- 最大延迟 (Max Latency)
- < 100微秒: 优秀
- < 500微秒: 良好
- < 1000微秒: 一般
- 平均延迟 (Average Latency)
- 反映系统的整体实时性能
- 延迟分布
- 直方图显示延迟分布情况
- 帮助识别性能瓶颈
