当前位置: 首页 > news >正文

如何米尔RK3576开发板上移植EtherCAT Igh

本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微 RK3576开发板)的板端移植EtherCAT Igh方案的开发测试。

摘自优秀创作者-EPTmachine

米尔基于瑞芯微RK3576开发板


EtherCAT IgH需要保证高实时性,Preempt-RT是一种针对实时性能进行了优化的Linux内核。与普通的Linux内核相比,Preempt-RT具有以下优势:

  1. 实时性能: Preempt-RT提供了更可靠和更精确的实时性能。它采用了一些实时调度策略和机制,使得任务能够按照严格的时间要求执行,从而适用于需要高度可预测性和低延迟的应用场景,如工业自动化、机器人控制等。

  2. 硬实时能力: Preempt-RT具有硬实时能力,即能够确保任务在规定的时间内完成,而不会受到其他任务或中断的干扰。这对于需要严格的时间限制的应用非常重要,如航空航天、医疗设备等领域。

  3. 任务调度: Preempt-RT使用了更加高效和优化的任务调度算法,如基于优先级的实时调度算法,以确保高优先级任务能够及时响应并完成,而低优先级任务不会影响到实时任务的执行。

  4. 中断处理: Preempt-RT针对中断处理进行了优化,使得中断的响应时间更短,能够更快地响应外部事件。

  5. 内核定时器: Preempt-RT提供了更精确和可配置的内核定时器,使得可以实现微秒级的定时精度,适用于对时间要求极高的应用场景。

  6. 实时扩展: Preempt-RT提供了一些实时扩展机制,使得用户能够方便地对内核进行定制和扩展,以满足特定应用的需求。总的来说,Preempt-RT在实时性能、可靠性和精度方面比普通的Linux内核更加优秀,因此在对实时性能要求较高的应用场景中被广泛使用。瑞芯微提供配套SDK的Preempt-RT补丁。

1、Linux PREEMPT_RT补丁

Linux Kernel应用补丁的指令格式如下

patch -p1 < path/to/patch-x.y.z

Rockchip SDK中的doc/Real-Time-Performance目录下有相关的实时内核补丁。

MYD3576使用的内核版本为6.1.75,将文件夹中的Kernel-6.1下的补丁应用到内核配置中。

cd /path/to/kernel-6.1/

patch中存在重定义问题

  • serial8250_set_IER(struct uart_8250_port *up,int ier) 函数重定义

  • serial8250_console_write_atomic()函数重定义

  • serial8250_console_putchar_locked(struct uart_port *port,unsigned char ch) 函数重定义

  • serial8250_console_write_atomic*() 函数重定义

  • serial8250_console_setup 中 变量up重定义

修改以上几处的代码,注释掉其中和补丁patch添加的代码中不同的部分,避免编译过程中报错。

make -C /path/to/SDK/kernel/ -j9 CROSS_COMPILE=/path/to/SDK/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 rockchip_linux_defconfig rk3576.config rockchip_linux_docker.config rockchip_rt.config

指令中/path/to/SDK为SDK的安装路径。

2、EtherCAT IGH编译和安装

下载EtherCAT IGH的代码

下载的代码压缩包为ethercat-stable-1.6.xxxx,根据压缩包文件类型,将其解压得到ethercat igh的源代码。

参考官方使用手册《ethercat-doc.pdf》对源代码进行配置

./configure --prefix=$PWD/output --with-linux-dir=$MYD3576_ENV/kernel-6.1 --enable-generic=yes --host=aarch64-buildroot-linux

命令行中$PWD为当前文件夹,$MYD3576_ENV为米尔SDK的安装位置,--host参数根据使用的工具链的编译器前缀进行调整。

导入Buildroot工具链的环境配置脚本

source $MYD3576_ENV/buildroot/output/rockchip_rk3576/host/environment-setup

将该脚本以系统变量的形式存储起来,便于导入

export MYD3576_BUILDROOT=$MYD3576_ENV/buildroot/output/rockchip_rk3576/host/environment-setup
source $MYD3576_BUILDROOT

执行以下指令完成代码、模块的编译和输出

make
make modules
sudo make install

首先安装编译结果的ec_generic.ko(位于devices文件夹中)和ec_master.ko(位于master文件夹中)模块,执行下列指令查看内核的版本信息。

uname -s -r -v
Linux 6.1.75-rt16 #1 SMP PREEMPT Mon May 26 20:57:18 CST 2025

在开发板的/lib/modules目录中创建内核版本文件,用于存放ec_generic.ko和ec_master.ko模块。

mkdir -p /lib/modules/6.1.75-rt16

output目录中包含运行可执行的二进制文件、库文件等,将其发送到开发板上即可。需要传输的文件包括以下几项

/sbin/ethercatctl
/lib/*
/etc/*
/bin/*

修改/sbin/ethercatctl中的指向/bin/ethercat的文件路径变量。修改/etc/init.d/ethercat中指向/sbin/ethercatctl/etc/sysconfig/ethercat的文件路径变量。

修改/etc/ethercat.conf中EtherCAT Master的MAC地址

完成上述配置,执行/etc/init.d/ethercat start

http://www.dtcms.com/a/412372.html

相关文章:

  • 建设公司设计公司网站网页模板怎么做网站
  • 政务门户网站建设方案南京网络推广公司排名
  • 做淘宝网站代理wordpress中文翻译插件
  • [Python编程] Python3 文件操作
  • 济源网站优化网页升级紧急通知中
  • 桂林论坛网网站电话郑州外贸网站制作
  • Gin 框架令牌桶限流实战指南
  • php做自己的网站百度浏览器网页版
  • 珠海网站建设找哪家电子政务与网站建设方面
  • LeetCode:60.单词搜索
  • 给一个网站风格做定义怎样在微信中做网站
  • JxBrowser 7.44.1 版本发布啦!
  • 代运营公司是怎么运营的安徽网站seo公司
  • 完整教程:从0到1在Windows下训练YOLOv8模型
  • c2c商城网站开发企业宣传方式
  • 网站图片的暗纹是怎么做的楼盘网站建设方案ppt
  • 免费的代码分享网站龙岩做网站公司在哪里
  • 黑马八股笔记
  • MQTT 会话 (Session) 详解
  • 网站强制使用极速模式ppt超级市场
  • 17.zwd一起做网站池尾站安卓下载软件app
  • qq自动发货平台网站怎么做wordpress动态文章页模板下载
  • 龙芯在启动参数里添加串口信息
  • 网站域名spacewordpress 打开很慢
  • 收到短信说备案被退回但工信部网站上正常啊wordpress自动缩略图
  • 目前做网站最流行的程序语言网站出问题
  • 上海网站营销seo怎么查看网站是哪个公司建的
  • Stata语法详解:从入门到精通
  • 专门做当归的网站网站文章不收录怎么做
  • 正规网站建设服务中心开发企业app公司