嵌入式
返回首页

技术分享 | RK3588集成Xenomai3实时补丁实践

2025-12-04 来源:elecfans

Xenomai是一套为Linux设计的实时开发框架,通过“双内核”架构,使系统既能处理复杂的通用任务,又能可靠地完成对响应时间有极端要求的实时任务,广泛应用于航空航天等对实时性要求极高的场景。本篇文章以启扬RK3588开发板为例,分享如何添加Xenomai3实时补丁。

845bd622-cb73-11f0-8ce9-92fbcf53809c.jpg

步骤:

只需要打两个补丁,Dovetl或者I-pe补丁,以及xenomai3的内核补丁。

Dovetail 是 I-pipe 的后继产品,二选一,Dovetail支持5.10之后的内核, I-pipe反之。


01
打Dovetail补丁


我现在内核是6.1.99,主要Dovetail的补丁是RK发放的,RK修改过的,要用有这个补丁的内核版本,没有对应内核的Dovetail补丁问FAE也没用。

在k里面位置:docs/Patches/Real-me-Peormance/XENOMAI/kernel-6.1/6.1.99/


cdkernel
git apply docs/Patches/Real-Time-Performance/XENOMAI/kernel-6.1/6.1.99/*


PS:https://source.denx.de/Xenomai/linux-dovetail.git

有跟随内核主线维护的Dovetail的内核仓库,这个仓库就是加了Dovetail的内核,也有对应的patch但是我没有找到。

这个补丁的作用是把硬件资源抽象化EOS,并且划分作用域。

作用是图中的域2。


846ee3ac-cb73-11f0-8ce9-92fbcf53809c.png02
打xenomai3的内核补丁


需要下载xenomai3的源码

# 在sdk的根目录下 需要翻墙
gitclone https://source.denx.de/Xenomai/xenomai.git
cdxenomai
# 选择版本
git checkout stable/v3.3.x
# 生成patch
scripts/prepare-kernel.sh --linux=/home/yangx/linux2/yangx/RK3588/I-RK3588-MB-kernel-6.1/kernel/ --arch=aarch64 --outpatch=/home/yangx/linux2/yangx/RK3588/IAC-RK3588-MB-kernel-6.1/cobalt.patch
# 进入kernel 打patch即可
git apply ../cobalt.patch


03
配置内核选项


查看链接:Wiki · xenomai / xenomai · GitLab


847e4522-cb73-11f0-8ce9-92fbcf53809c.png


以及这些选项配置:有的没有,尽量一致

8488e022-cb73-11f0-8ce9-92fbcf53809c.png

make menuconfig ARCH=64


进入menuconfig的界面,打入的补丁正常的话会显示:

84947414-cb73-11f0-8ce9-92fbcf53809c.png

内核的相关配置就结束了。

我的内核配置patch

_linux_defconfig.xlsx


04
编译xenoma3库


# 在sdk的根目录下
cdxenomai
source一下的编译器 或者 配置一下编译器的环境变量
source/opt/fsl-imx-wayland/6.1-mickore/environment-setup-armv8a-poky-linux
# 生成Makefile
./scripts/bootstrap
./configure CFLAGS="-mtune=cortex-a76"LDFLAGS="-mtune=cortex-a76"--build=i686-pc-linux-gnu --host=aarch64-linux-gnu --with-core=cobalt --enable-smp CC=aarch64-linux-gnu-gcc LD=aarch64-linux-gnu-ld
# 编译 安装
make -j128
mkdir -p build && make install DESTDIR=./build/
# 之后把build下生成的文件全部复制到板子的文件系统里面即可。

测试:

加压力测试以测试实时性和空闲状态下比较。

进入嵌入式查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • FollowMe 第二季:3 - EK_RA6M5 开发板入门

  • FollowMe 第二季: 1 Adafruit Circuit Playground Express及任务讲解

  • Azure RTOS step by step workshop

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • 从0到1:树莓派与物联网教程(英文)

精选电路图
  • 设计汽车集群电源

  • 6晶体管H桥

  • USB自供电声卡

  • AVR LCD温度计—LM35

  • AVR PC步进电机驱动器

  • AVR温度计TCN75

    相关电子头条文章