本文將介紹基于米爾電子MYD-LR3576開發(fā)板(米爾基于瑞芯微 RK3576開發(fā)板)的板端移植EtherCAT Igh方案的開發(fā)測(cè)試。摘自優(yōu)秀創(chuàng)作者-EPTmachine
![]() EtherCAT IgH需要保證高實(shí)時(shí)性,Preempt-RT是一種針對(duì)實(shí)時(shí)性能進(jìn)行了優(yōu)化的Linux內(nèi)核。與普通的Linux內(nèi)核相比,Preempt-RT具有以下優(yōu)勢(shì):
Linux Kernel應(yīng)用補(bǔ)丁的指令格式如下 patch -p1 < path/to/patch-x.y.zRockchip SDK中的doc/Real-Time-Performance目錄下有相關(guān)的實(shí)時(shí)內(nèi)核補(bǔ)丁。
![]() MYD3576使用的內(nèi)核版本為6.1.75,將文件夾中的Kernel-6.1下的補(bǔ)丁應(yīng)用到內(nèi)核配置中。 cd /path/to/kernel-6.1/patch中存在重定義問(wèn)題
![]()
修改以上幾處的代碼,注釋掉其中和補(bǔ)丁patch添加的代碼中不同的部分,避免編譯過(guò)程中報(bào)錯(cuò)。 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,根據(jù)壓縮包文件類型,將其解壓得到ethercat igh的源代碼。 參考官方使用手冊(cè)《ethercat-doc.pdf》對(duì)源代碼進(jìn)行配置 ./configure --prefix=$PWD/output --with-linux-dir=$MYD3576_ENV/kernel-6.1 --enable-generic=yes --host=aarch64-buildroot-linux命令行中$PWD為當(dāng)前文件夾,$MYD3576_ENV為米爾SDK的安裝位置,--host參數(shù)根據(jù)使用的工具鏈的編譯器前綴進(jìn)行調(diào)整。 導(dǎo)入Buildroot工具鏈的環(huán)境配置腳本 source $MYD3576_ENV/buildroot/output/rockchip_rk3576/host/environment-setup將該腳本以系統(tǒng)變量的形式存儲(chǔ)起來(lái),便于導(dǎo)入 export MYD3576_BUILDROOT=$MYD3576_ENV/buildroot/output/rockchip_rk3576/host/environment-setupsource $MYD3576_BUILDROOT 執(zhí)行以下指令完成代碼、模塊的編譯和輸出 makemake modules sudo make install 首先安裝編譯結(jié)果的ec_generic.ko(位于devices文件夾中)和ec_master.ko(位于master文件夾中)模塊,執(zhí)行下列指令查看內(nèi)核的版本信息。 uname -s -r -vLinux 6.1.75-rt16 #1 SMP PREEMPT Mon May 26 20:57:18 CST 2025 在開發(fā)板的/lib/modules目錄中創(chuàng)建內(nèi)核版本文件,用于存放ec_generic.ko和ec_master.ko模塊。 mkdir -p /lib/modules/6.1.75-rt16output目錄中包含運(yùn)行可執(zhí)行的二進(jìn)制文件、庫(kù)文件等,將其發(fā)送到開發(fā)板上即可。需要傳輸?shù)奈募ㄒ韵聨醉?xiàng) /sbin/ethercatctl/lib/* /etc/* /bin/* 修改/sbin/ethercatctl中的指向/bin/ethercat的文件路徑變量。修改/etc/init.d/ethercat中指向/sbin/ethercatctl和/etc/sysconfig/ethercat的文件路徑變量。 修改/etc/ethercat.conf中EtherCAT Master的MAC地址 完成上述配置,執(zhí)行/etc/init.d/ethercat start
![]() |