| 
案例编译IgH EtherCAT主站程序编译 IgH EtherCAT主站程序的编译需依赖于基于Linux内核源码,请先参考《Debian系统使用手册》编译Linux-RT内核,再编译IgH EtherCAT主站程序。 请将案例"igh_ethercat\src\"目录下的IgH EtherCAT主站程序开发包ethercat-stable-[版本号]-[Git序列号].tar.gz拷贝至Ubuntu工作目录,执行如下命令进行解压。 Host# mkdir EtherCAT Host# tar -xvf ethercat-stable-1.5-gcd0d17d-20210723.tar.gz -C EtherCAT/  
![]()  
图 31 
![]()  
图 32 
执行如下命令,安装编译所需的软件。 Host# sudo apt-get install autoconf Host# sudo apt-get install libtool  
![]()  
图 33 
执行如下命令,配置交叉编译工具链。 Host# sudo vim /etc/profile  
![]()  
图 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 
 
![]()  
图 35 
执行如下命令,加载环境变量。 Host# source /etc/profile  
![]()  
图 36 
进入解压目录,执行如下命令修改configure.ac和Makefile.am文件屏蔽pkg-config相关配置,以免影响正常编译。 Host# cd EtherCAT/ Host# vim configure.ac Host# vim lib/Makefile.am  
![]()  
图 37 
configure.ac文件修改内容如下:  
#PKG_PROG_PKG_CONFIG //添加注释 #PKG_INSTALLDIR() //添加注释  
![]()  
图 38 configure.ac 
Makefile.am文件修改内容如下:  
#pkgconfig_DATA = libethercat.pc //添加注释  
![]()  
图 39 Makefile.am 
执行如下命令生成configure文件。 Host# ./bootstrap  
![]()  
图 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内核需先进行编译。 
 
![]()  
图 41 
![]()  
图 42 
执行如下命令,进行编译。 Host# make  
![]()  
图 43 
![]()  
图 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  
![]()  
图 45 
![]()  
图 46 
执行如下命令,编译生成IgH EtherCAT主站程序。 Host# make install  
![]()  
图 47 
![]()  
图 48 
执行如下命令,将驱动文件拷贝至"_install/modules/"目录下。 Host# mkdir -p _install/modules Host# cp ./master/ec_master.ko ./_install/modules/ Host# cp ./devices/ec_generic.ko ./_install/modules/  
![]()  
图 49 
igh_ethercat_dc_motor案例编译igh_ethercat_dc_motor案例的编译需基于IgH EtherCAT主站程序,请先编译IgH EtherCAT主站程序。 请将案例src源码目录拷贝至Ubuntu工作目录下,进入src目录执行如下命令修改Makefile相关内容为IgH EtherCAT主站程序对应目录,如下图所示。 Host# vim Makefile  
![]()  
图 50 
修改的内容如下:  
INCLUDE += -I /home/tronlong/EtherCAT/_install/include LDFLAGS := -L /home/tronlong/EtherCAT/_install/lib  
![]()  
图 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  
![]()  
图 52 
关键代码(1)创建EtherCAT Master。 
 
![]()  
图 53 
(2)创建域。 
 
![]()  
图 54 
(3)配置PDO。 
 
![]()  
图 55 
(4)为域注册PDO条目。 
 
![]()  
图 56 
(5)激活Master。 
 
![]()  
图 57 
(6)修改当前进程优先级。 
 
![]()  
图 58 
(7)进入循环周期任务。 
 
![]()  
图 59 
(8)在周期任务中设置驱动器操作模式、加速度和减速度,分别发送0x6、0x7、0xF使驱动器处于ON状态。 
 
![]()  
图 60 
(9)发送目标速度,转动电机。 
 
![]()  
图 61 
 
 
 |