创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—IgH EtherCAT主站开发案例(下)
案例编译IgH EtherCAT主站程序编译IgH EtherCAT主站程序的编译需依赖于基于Linux内核源码,请先参考《Debian系统使用手册》编译Linux-RT内核,再编译IgH EtherCAT主站程序。请将案例"igh_ethercat\src\"目录下的IgH EtherCAT主站程序开发包ethercat-stable-[版本号]-.tar.gz拷贝至Ubuntu工作目录,执行如下命令进行解压。Host# mkdir EtherCATHost# tar -xvf ethercat-stable-1.5-gcd0d17d-20210723.tar.gz -C EtherCAT/https://file1.elecfans.com/web3/M00/35/0B/wKgZO2jvRP6AELEBAAD9OjqOYJI895.png
图 31
https://file1.elecfans.com/web3/M00/35/0C/wKgZPGjvRP6AfDxpAAAq8hqBfQ8439.png
图 32
执行如下命令,安装编译所需的软件。Host# sudo apt-get install autoconfHost# sudo apt-get install libtool
https://file1.elecfans.com/web3/M00/35/0C/wKgZPGjvRRKAPNQVAACu1k9WjIw465.png
图 33
执行如下命令,配置交叉编译工具链。Host# sudo vim /etc/profile
https://file1.elecfans.com/web3/M00/35/0C/wKgZPGjvRVKAGMgEAAAWAqUDFbg917.png
图 34
在文件末尾添加如下内容:
export PATH=/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/extra-tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin:$PATH
https://file1.elecfans.com/web3/M00/35/0C/wKgZPGjvRVmAN11XAAD82NSFKUM211.png
图 35
执行如下命令,加载环境变量。Host# source /etc/profile
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRWCADI41AAAcmPhMkFI114.png
图 36
进入解压目录,执行如下命令修改configure.ac和Makefile.am文件屏蔽pkg-config相关配置,以免影响正常编译。Host# cd EtherCAT/Host# vim configure.acHost# vim lib/Makefile.am
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRWiAZ4KtAAC7OkrNrFs613.png
图 37
configure.ac文件修改内容如下:
#PKG_PROG_PKG_CONFIG //添加注释#PKG_INSTALLDIR() //添加注释
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRXyASe2cAAAi1lcCJO0608.png
图 38 configure.ac
Makefile.am文件修改内容如下:
#pkgconfig_DATA = libethercat.pc //添加注释
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRYWAR4pMAABGJy9EX0g020.png
图 39 Makefile.am
执行如下命令生成configure文件。Host# ./bootstrap
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRY2Aeu1EAAGovaN9WsI263.png
图 40
执行如下命令,进行环境配置。Host# mkdir _install //创建_install文件夹用于存放生成的文件Host# ./configure --prefix=/home/tronlong/EtherCAT/_install --with-linux-dir=/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/kernel --enable-8139too=no --enable-generic=yes CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu备注:(1)编译需要依赖交叉编译工具链,请确保已配置交叉编译工具链。
(2)--prefix选择创建的_install目录,--with-linux-dir选择Linux-RT内核目录,Linux-RT内核需先进行编译。
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRZiAVT5vAAHflmRjfSU965.png
图 41
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRZiAHn7cAABUL4OKh2s380.png
图 42
执行如下命令,进行编译。Host# make
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRayAHN5OAAD0VP8Hcdk658.png
图 43
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRayAeZIEAAE_CW9fVdo976.png
图 44
执行如下命令,编译驱动。Host# export PATH=/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/extra-tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin:$PATH //配置交叉编译工具链环境变量Host# make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRkKAMb9uAAHsDzW5a6g076.png
图 45
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRkKASRHAAAGWsaCkIwk124.png
图 46
执行如下命令,编译生成IgH EtherCAT主站程序。Host# make install
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRlSAUhTVAAF***iE_Ix4483.png
图 47
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRlSANt-kAAJUFL5Dg9s792.png
图 48
执行如下命令,将驱动文件拷贝至"_install/modules/"目录下。Host# mkdir -p _install/modulesHost# cp ./master/ec_master.ko ./_install/modules/Host# cp ./devices/ec_generic.ko ./_install/modules/
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRmmALBdrAABtSRHmx54462.png
图 49
igh_ethercat_dc_motor案例编译igh_ethercat_dc_motor案例的编译需基于IgH EtherCAT主站程序,请先编译IgH EtherCAT主站程序。请将案例src源码目录拷贝至Ubuntu工作目录下,进入src目录执行如下命令修改Makefile相关内容为IgH EtherCAT主站程序对应目录,如下图所示。Host# vim Makefile
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRnKAIlwVAABXp27eLz0320.png
图 50
修改的内容如下:
INCLUDE += -I /home/tronlong/EtherCAT/_install/includeLDFLAGS := -L /home/tronlong/EtherCAT/_install/lib
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRnmAETC_AADs-zbr_FI100.png
图 51
执行如下命令,进行编译。编译完成后,将在当前目录下生成可执行文件。Host# export PATH=/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/extra-tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin:$PATH //配置交叉编译工具链环境变量Host# make CC=aarch64-linux-gnu-gcc
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRoCANzHlAAEobHM79eY431.png
图 52
关键代码(1)创建EtherCAT Master。
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRoiAcTNwAAAkWBGetRU200.png
图 53
(2)创建域。
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRrOAVz5jAAAlhQ9bz6s360.png
图 54
(3)配置PDO。
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRt-AZz5iAACDtZVsASI805.png
图 55
(4)为域注册PDO条目。
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvRvGASMDgAAAz-FwGNWQ863.png
图 56
(5)激活Master。
https://file1.elecfans.com/web3/M00/35/0C/wKgZO2jvRv6ASSfFAAApQUOINmE256.png
图 57
(6)修改当前进程优先级。
https://file1.elecfans.com/web3/M00/35/0D/wKgZO2jvR02APQuCAAAiVu990qg372.png
图 58
(7)进入循环周期任务。
https://file1.elecfans.com/web3/M00/35/0D/wKgZO2jvR1WAaVPRAAAW0Fka5Sw137.png
图 59
(8)在周期任务中设置驱动器操作模式、加速度和减速度,分别发送0x6、0x7、0xF使驱动器处于ON状态。
https://file1.elecfans.com/web3/M00/35/0D/wKgZPGjvR1yAB4okAACY3NNU-38029.png
图 60
(9)发送目标速度,转动电机。
https://file1.elecfans.com/web3/M00/35/0D/wKgZO2jvR2KATkJzAACZyXaO6Uc071.png
图 61
页:
[1]