网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

技术分享 | RK3588如何搭建preempt_rt+ethercat

时间:2026-04-02 17:31

人气:

作者:admin

标签:

导读:说明:使用的RK3588的分支版本是linux-6.1-stan-rkr6内核版本是6.1.99,文件系统是DebianGNU/Linux12,把瑞芯微的SDK更新到linux-6.1-stan-rkr6这个版本即可,适配preemrt的ethercat的源码是RK已经适配过的...

说明:

使用的RK3588的分支版本是linux-6.1-stan-rkr6 内核版本是6.1.99 ,文件系统是Debian GNU/Linux 12 ,把瑞芯微的SDK更新到linux-6.1-stan-rkr6这个版本即可,适配preemrt的ethercat的源码是RK已经适配过的,直接拿来使用即可。 RK的SDK的doc也有ethercat相关的文档。




aadd80fa-2e76-11f1-ab55-92fbcf53809c.jpg

编译preemrt的内核

前面要先把preemrt的内核补丁打好,看RK的文档即可。


编译ethercat

通用的驱动编译编译出来,可以正常使用,说明编译的环境大致没问题。 其中编译步骤,试过两种,一种是交叉编译,一种是RK3588直接编译。


用交叉编译命令如下:

# ethcat_igh我放到了SDK的根目录方便编译
SDK_DIR=/home/yangx/linux2/yangx/RK3588/IAC-RK3588-MB-kernel-6.1/
TOOLS_PATH=$SDK_DIR/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/
CROSS_PATH=$TOOLS_PATH/bin
exportPATH=$TOOLS_PATH:$CROSS_PATH:$PATH
exportCROSS_COMPILE=aarch64-none-linux-gnu-
exportARCH=arm64
KERNEL_SRC=/home/yangx/linux2/yangx/RK3588/IAC-RK3588-MB-kernel-6.1/kernel/

./bootstrap
./configure --prefix=/home/yangx/linux2/yangx/RK3588/IAC-RK3588-MB-kernel-6.1/ethercat_igh/build/ --host=aarch64-none-linux-gnu --with-linux-dir=${KERNEL_SRC}--enable-8139too=no --enable-stmmac=yes --enable-generic=no --enable-wildcards=yes
# 编译驱动
make ARCH=arm64 modules
#编译应用工具和ethercat库
make ARCH=arm64


RK3588直接编译

用U盘把ethercat_igh文件夹,直接拷贝到板子的根目录编译,命令如下:

./bootstrap
./configure --with-linux-dir=/usr/src/linux-headers-6.1-rockchip --disable-8139too --enable-generic=no --enable-stmmac=yes --disable-e1000e --enable-kernel --disable-hrtimer --disable-eoe --prefix=/opt/etherlab
make modules
make
make install


两种方式都能编译成功。 编译通用驱动是这个两个参数--enable-generic=yes --enable-stmmac=no , 实际调试的时候是先加载通用的驱动,使用ethercat的命令都是正常的,然后再重新编译stmmac的驱动,进行调试。


修改内核

把设备树的gmac0的compatible修改为snps,dwmac-5.00.a0


aaf01ab2-2e76-11f1-ab55-92fbcf53809c.png

板子加载ethercat驱动和使用的步骤


# 把内核源码编译的 pcs_xpcs.ko phylink.ko 放到/lib/modules/6.1.99-rt36/文件夹
insmod phylink.ko
insmod pcs_xpcs.ko
# 设置为eth0的MAC地址
insmod ec_master.ko main_devices=32b5e3:d5
insmod ec_stmmac.ko


实际测试的时候:

Ethercat模块是EL1008,EL2008,网线直连RK3588和ethercat模块,1ms周期,10us的抖动延时。


aafa2cbe-2e76-11f1-ab55-92fbcf53809c.png

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信