Merge branch 'prepare-1.6' into 'devel-1.6'

Prepare release 1.6

See merge request etherlab.org/ethercat!113
This commit is contained in:
Florian Pose
2024-02-01 14:22:15 +00:00
284 changed files with 2430 additions and 2783 deletions
+3 -5
View File
@@ -1,6 +1,4 @@
#------------------------------------------------------------------------------
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2012 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -21,7 +19,7 @@
#
# vi: syntax=make
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
obj-m := mini/
@@ -33,4 +31,4 @@ ifeq (@ENABLE_RTAI@,1)
obj-m += rtai/ dc_rtai/
endif
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+4 -5
View File
@@ -1,6 +1,4 @@
#------------------------------------------------------------------------------
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2012 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -19,7 +17,8 @@
# with the IgH EtherCAT Master; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
include $(top_srcdir)/Makefile.kbuild
SUBDIRS =
@@ -63,4 +62,4 @@ DIST_SUBDIRS = \
xenomai \
xenomai_posix
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+3 -5
View File
@@ -1,6 +1,4 @@
#------------------------------------------------------------------------------
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -23,7 +21,7 @@
#
# vi: syntax=make
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
src := @abs_srcdir@
ccflags-y := -I@abs_top_builddir@
@@ -38,4 +36,4 @@ KBUILD_EXTRA_SYMBOLS := \
@abs_top_builddir@/$(LINUX_SYMVERS) \
@abs_top_builddir@/master/$(LINUX_SYMVERS)
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+4 -7
View File
@@ -1,8 +1,4 @@
#------------------------------------------------------------------------------
#
# IgH EtherCAT master module
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -21,10 +17,11 @@
# with the IgH EtherCAT Master; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
include $(top_srcdir)/Makefile.kbuild
EXTRA_DIST = \
dc_rtai_sample.c
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+16 -18
View File
@@ -1,9 +1,7 @@
/******************************************************************************
/*****************************************************************************
*
* Distributed clocks sample for the IgH EtherCAT master.
*
* $Id$
*
* Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
*
* This file is part of the IgH EtherCAT Master.
@@ -21,7 +19,7 @@
* with the IgH EtherCAT Master; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
****************************************************************************/
// Linux
#include <linux/module.h>
@@ -34,7 +32,7 @@
// EtherCAT
#include "../../include/ecrt.h"
/*****************************************************************************/
/****************************************************************************/
// Module parameters
@@ -47,7 +45,7 @@
#define PFX "ec_dc_rtai_sample: "
/*****************************************************************************/
/****************************************************************************/
// EtherCAT
static ec_master_t *master = NULL;
@@ -61,7 +59,7 @@ static RT_TASK task;
static SEM master_sem;
static cycles_t t_last_cycle = 0, t_critical;
/*****************************************************************************/
/****************************************************************************/
// process data
static uint8_t *domain1_pd; // process data memory
@@ -82,7 +80,7 @@ static unsigned int blink_counter = 0;
static unsigned int blink = 0;
static u32 counter_value = 0U;
/*****************************************************************************/
/****************************************************************************/
static ec_pdo_entry_info_t el2008_channels[] = {
{0x7000, 1, 1},
@@ -112,7 +110,7 @@ static ec_sync_info_t el2008_syncs[] = {
{0xff}
};
/*****************************************************************************/
/****************************************************************************/
void check_domain1_state(void)
{
@@ -130,7 +128,7 @@ void check_domain1_state(void)
domain1_state = ds;
}
/*****************************************************************************/
/****************************************************************************/
void check_master_state(void)
{
@@ -150,7 +148,7 @@ void check_master_state(void)
master_state = ms;
}
/*****************************************************************************/
/****************************************************************************/
void run(long data)
{
@@ -225,7 +223,7 @@ void run(long data)
}
}
/*****************************************************************************/
/****************************************************************************/
void send_callback(void *cb_data)
{
@@ -239,7 +237,7 @@ void send_callback(void *cb_data)
}
}
/*****************************************************************************/
/****************************************************************************/
void receive_callback(void *cb_data)
{
@@ -253,7 +251,7 @@ void receive_callback(void *cb_data)
}
}
/*****************************************************************************/
/****************************************************************************/
int __init init_mod(void)
{
@@ -368,7 +366,7 @@ int __init init_mod(void)
return ret;
}
/*****************************************************************************/
/****************************************************************************/
void __exit cleanup_mod(void)
{
@@ -382,13 +380,13 @@ void __exit cleanup_mod(void)
printk(KERN_INFO PFX "Unloading.\n");
}
/*****************************************************************************/
/****************************************************************************/
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Florian Pose <fp@igh-essen.com>");
MODULE_AUTHOR("Florian Pose <fp@igh.de>");
MODULE_DESCRIPTION("EtherCAT distributed clocks sample module");
module_init(init_mod);
module_exit(cleanup_mod);
/*****************************************************************************/
/****************************************************************************/
-2
View File
@@ -1,7 +1,5 @@
#------------------------------------------------------------------------------
#
# $Id$
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
# This file is part of the IgH EtherCAT Master.
-2
View File
@@ -1,7 +1,5 @@
#------------------------------------------------------------------------------
#
# $Id$
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
# This file is part of the IgH EtherCAT Master.
+4 -9
View File
@@ -1,10 +1,4 @@
#------------------------------------------------------------------------------
#
# Makefile.am
#
# IgH EtherCAT master module
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -23,10 +17,11 @@
# with the IgH EtherCAT Master; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
include $(top_srcdir)/Makefile.kbuild
EXTRA_DIST = \
mini.c
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+2 -6
View File
@@ -1,8 +1,4 @@
-------------------------------------------------------------------------------
$Id$
-------------------------------------------------------------------------------
------------------------------------------------------------------------------
This is a minimal example module for the use of the EtherCAT master realtime
interface. It uses a kernel timer to generate a cyclic task.
@@ -25,4 +21,4 @@ insmod ec_mini.ko
...and watch the system logs for the outputs.
-------------------------------------------------------------------------------
------------------------------------------------------------------------------
+20 -22
View File
@@ -1,6 +1,4 @@
/******************************************************************************
*
* $Id$
/*****************************************************************************
*
* Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
*
@@ -19,7 +17,7 @@
* with the IgH EtherCAT Master; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
****************************************************************************/
#include <linux/version.h>
#include <linux/module.h>
@@ -31,7 +29,7 @@
#include "../../include/ecrt.h" // EtherCAT realtime interface
/*****************************************************************************/
/****************************************************************************/
// Module parameters
#define FREQUENCY 100
@@ -45,7 +43,7 @@
#define PFX "ec_mini: "
/*****************************************************************************/
/****************************************************************************/
// EtherCAT
static ec_master_t *master = NULL;
@@ -61,7 +59,7 @@ static ec_slave_config_state_t sc_ana_in_state = {};
// Timer
static struct timer_list timer;
/*****************************************************************************/
/****************************************************************************/
// process data
static uint8_t *domain1_pd; // process data memory
@@ -93,7 +91,7 @@ const static ec_pdo_entry_reg_t domain1_regs[] = {
static unsigned int counter = 0;
static unsigned int blink = 0;
/*****************************************************************************/
/****************************************************************************/
#if CONFIGURE_PDOS
@@ -172,7 +170,7 @@ static ec_sync_info_t el2004_syncs[] = {
};
#endif
/*****************************************************************************/
/****************************************************************************/
#if SDO_ACCESS
static ec_sdo_request_t *sdo;
@@ -182,7 +180,7 @@ static ec_sdo_request_t *sdo;
static ec_voe_handler_t *voe;
#endif
/*****************************************************************************/
/****************************************************************************/
void check_domain1_state(void)
{
@@ -200,7 +198,7 @@ void check_domain1_state(void)
domain1_state = ds;
}
/*****************************************************************************/
/****************************************************************************/
void check_master_state(void)
{
@@ -220,7 +218,7 @@ void check_master_state(void)
master_state = ms;
}
/*****************************************************************************/
/****************************************************************************/
void check_slave_config_states(void)
{
@@ -241,7 +239,7 @@ void check_slave_config_states(void)
sc_ana_in_state = s;
}
/*****************************************************************************/
/****************************************************************************/
#if SDO_ACCESS
void read_sdo(void)
@@ -266,7 +264,7 @@ void read_sdo(void)
}
#endif
/*****************************************************************************/
/****************************************************************************/
#if VOE_ACCESS
void read_voe(void)
@@ -291,7 +289,7 @@ void read_voe(void)
}
#endif
/*****************************************************************************/
/****************************************************************************/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
void cyclic_task(struct timer_list *t)
@@ -346,7 +344,7 @@ void cyclic_task(unsigned long data)
add_timer(&timer);
}
/*****************************************************************************/
/****************************************************************************/
void send_callback(void *cb_data)
{
@@ -356,7 +354,7 @@ void send_callback(void *cb_data)
spin_unlock_bh(&master_spinlock);
}
/*****************************************************************************/
/****************************************************************************/
void receive_callback(void *cb_data)
{
@@ -366,7 +364,7 @@ void receive_callback(void *cb_data)
spin_unlock_bh(&master_spinlock);
}
/*****************************************************************************/
/****************************************************************************/
int __init init_mini_module(void)
{
@@ -506,7 +504,7 @@ out_return:
return ret;
}
/*****************************************************************************/
/****************************************************************************/
void __exit cleanup_mini_module(void)
{
@@ -524,13 +522,13 @@ void __exit cleanup_mini_module(void)
printk(KERN_INFO PFX "Unloading.\n");
}
/*****************************************************************************/
/****************************************************************************/
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Florian Pose <fp@igh-essen.com>");
MODULE_AUTHOR("Florian Pose <fp@igh.de>");
MODULE_DESCRIPTION("EtherCAT minimal test environment");
module_init(init_mini_module);
module_exit(cleanup_mini_module);
/*****************************************************************************/
/****************************************************************************/
+3 -5
View File
@@ -1,6 +1,4 @@
#------------------------------------------------------------------------------
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -23,7 +21,7 @@
#
# vi: syntax=make
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
src := @abs_srcdir@
ccflags-y := -I@abs_top_builddir@
@@ -38,4 +36,4 @@ KBUILD_EXTRA_SYMBOLS := \
@abs_top_builddir@/$(LINUX_SYMVERS) \
@abs_top_builddir@/master/$(LINUX_SYMVERS)
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+4 -7
View File
@@ -1,8 +1,4 @@
#------------------------------------------------------------------------------
#
# IgH EtherCAT master module
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -21,10 +17,11 @@
# with the IgH EtherCAT Master; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
include $(top_srcdir)/Makefile.kbuild
EXTRA_DIST = \
rtai_sample.c
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+2 -6
View File
@@ -1,8 +1,4 @@
-------------------------------------------------------------------------------
$Id$
-------------------------------------------------------------------------------
------------------------------------------------------------------------------
This is a minimal example module for the use of the EtherCAT master realtime
interface with an RTAI thread.
@@ -28,4 +24,4 @@ insmod ec_rtai_sample.ko
...and watch the system logs for the outputs.
-------------------------------------------------------------------------------
------------------------------------------------------------------------------
+19 -20
View File
@@ -1,9 +1,7 @@
/******************************************************************************
/*****************************************************************************
*
* RTAI sample for the IgH EtherCAT master.
*
* $Id$
*
* Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
*
* This file is part of the IgH EtherCAT Master.
@@ -21,7 +19,7 @@
* with the IgH EtherCAT Master; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
****************************************************************************/
// Linux
#include <linux/module.h>
@@ -34,7 +32,7 @@
// EtherCAT
#include "../../include/ecrt.h"
/*****************************************************************************/
/****************************************************************************/
// Module parameters
@@ -48,7 +46,7 @@
#define PFX "ec_rtai_sample: "
/*****************************************************************************/
/****************************************************************************/
// EtherCAT
static ec_master_t *master = NULL;
@@ -65,7 +63,7 @@ static RT_TASK task;
static SEM master_sem;
static cycles_t t_last_cycle = 0, t_critical;
/*****************************************************************************/
/****************************************************************************/
// process data
static uint8_t *domain1_pd; // process data memory
@@ -88,7 +86,7 @@ const static ec_pdo_entry_reg_t domain1_regs[] = {
static unsigned int counter = 0;
static unsigned int blink = 0;
/*****************************************************************************/
/****************************************************************************/
#ifdef CONFIGURE_PDOS
static ec_pdo_entry_info_t el3162_channel1[] = {
@@ -133,7 +131,7 @@ static ec_sync_info_t el2004_syncs[] = {
};
#endif
/*****************************************************************************/
/****************************************************************************/
void check_domain1_state(void)
{
@@ -151,7 +149,7 @@ void check_domain1_state(void)
domain1_state = ds;
}
/*****************************************************************************/
/****************************************************************************/
void check_master_state(void)
{
@@ -171,7 +169,7 @@ void check_master_state(void)
master_state = ms;
}
/*****************************************************************************/
/****************************************************************************/
void check_slave_config_states(void)
{
@@ -192,7 +190,7 @@ void check_slave_config_states(void)
sc_ana_in_state = s;
}
/*****************************************************************************/
/****************************************************************************/
void run(long data)
{
@@ -235,7 +233,7 @@ void run(long data)
}
}
/*****************************************************************************/
/****************************************************************************/
void send_callback(void *cb_data)
{
@@ -249,7 +247,7 @@ void send_callback(void *cb_data)
}
}
/*****************************************************************************/
/****************************************************************************/
void receive_callback(void *cb_data)
{
@@ -263,7 +261,7 @@ void receive_callback(void *cb_data)
}
}
/*****************************************************************************/
/****************************************************************************/
int __init init_mod(void)
{
@@ -307,7 +305,8 @@ int __init init_mod(void)
goto out_release_master;
}
if (!(sc = ecrt_master_slave_config(master, DigOutSlavePos, Beckhoff_EL2004))) {
if (!(sc = ecrt_master_slave_config(master, DigOutSlavePos,
Beckhoff_EL2004))) {
printk(KERN_ERR PFX "Failed to get slave configuration.\n");
goto out_release_master;
}
@@ -366,7 +365,7 @@ int __init init_mod(void)
return ret;
}
/*****************************************************************************/
/****************************************************************************/
void __exit cleanup_mod(void)
{
@@ -380,13 +379,13 @@ void __exit cleanup_mod(void)
printk(KERN_INFO PFX "Unloading.\n");
}
/*****************************************************************************/
/****************************************************************************/
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Florian Pose <fp@igh-essen.com>");
MODULE_AUTHOR("Florian Pose <fp@igh.de>");
MODULE_DESCRIPTION("EtherCAT RTAI sample module");
module_init(init_mod);
module_exit(cleanup_mod);
/*****************************************************************************/
/****************************************************************************/
-2
View File
@@ -1,7 +1,5 @@
#------------------------------------------------------------------------------
#
# $Id$
#
# Copyright (C) 2006-2012 Florian Pose, Ingenieurgemeinschaft IgH
#
# This file is part of the IgH EtherCAT Master.
+3 -5
View File
@@ -1,9 +1,7 @@
/******************************************************************************
*
* $Id$
/*****************************************************************************
*
* Copyright (C) 2011 IgH Andreas Stewering-Bone
* 2012 Florian Pose <fp@igh-essen.com>
* 2012 Florian Pose <fp@igh.de>
*
* This file is part of the IgH EtherCAT master
*
@@ -19,7 +17,7 @@
* You should have received a copy of the GNU General Public License along
* with the IgH EtherCAT master. If not, see <http://www.gnu.org/licenses/>.
*
*****************************************************************************/
****************************************************************************/
#include <sched.h>
#include <stdio.h>
+6 -8
View File
@@ -1,6 +1,4 @@
#------------------------------------------------------------------------------
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2012 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -15,11 +13,11 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# the IgH EtherCAT Master; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# You should have received a copy of the GNU General Public License along
# with the IgH EtherCAT Master; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
noinst_PROGRAMS = ec_rtai_rtdm_dc_example
@@ -34,4 +32,4 @@ ec_rtai_rtdm_dc_example_LDFLAGS = \
$(RTAI_LXRT_LDFLAGS) -llxrt -lrtdm \
-L$(top_builddir)/lib/.libs -lethercat_rtdm
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+10 -12
View File
@@ -1,9 +1,7 @@
/******************************************************************************
*
* $Id$
/*****************************************************************************
*
* Copyright (C) 2011 IgH Andreas Stewering-Bone
* 2012 Florian Pose <fp@igh-essen.com>
* 2012 Florian Pose <fp@igh.de>
*
* This file is part of the IgH EtherCAT master
*
@@ -19,7 +17,7 @@
* You should have received a copy of the GNU General Public License along
* with the IgH EtherCAT master. If not, see <http://www.gnu.org/licenses/>.
*
*****************************************************************************/
****************************************************************************/
#include <sched.h>
#include <stdio.h>
@@ -174,7 +172,7 @@ RTIME system2count(
return nano2count(ret);
}
/*****************************************************************************/
/****************************************************************************/
/** Synchronise the distributed clocks
*/
@@ -200,7 +198,7 @@ void sync_distributed_clocks(void)
ecrt_master_sync_slave_clocks(master);
}
/*****************************************************************************/
/****************************************************************************/
/** Return the sign of a number
*
@@ -212,7 +210,7 @@ void sync_distributed_clocks(void)
({ typeof (val) _val = (val); \
((_val > 0) - (_val < 0)); })
/*****************************************************************************/
/****************************************************************************/
/** Update the master time based on ref slaves time diff
*
@@ -430,18 +428,18 @@ void my_cyclic(void)
stop_rt_timer();
}
/****************************************************************************
/*****************************************************************************
* Signal handler
***************************************************************************/
****************************************************************************/
void signal_handler(int sig)
{
run = 0;
}
/****************************************************************************
/*****************************************************************************
* Main function
***************************************************************************/
****************************************************************************/
int main(int argc, char *argv[])
{
+3 -5
View File
@@ -1,6 +1,4 @@
#------------------------------------------------------------------------------
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -23,7 +21,7 @@
#
# vi: syntax=make
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
src := @abs_srcdir@
ccflags-y := -I@abs_top_builddir@
@@ -40,4 +38,4 @@ KBUILD_EXTRA_SYMBOLS := \
@abs_top_builddir@/$(LINUX_SYMVERS) \
@abs_top_builddir@/master/$(LINUX_SYMVERS)
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+4 -9
View File
@@ -1,10 +1,4 @@
#------------------------------------------------------------------------------
#
# Makefile.am
#
# IgH EtherCAT master module
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -23,7 +17,8 @@
# with the IgH EtherCAT Master; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
include $(top_srcdir)/Makefile.kbuild
noinst_HEADERS = \
@@ -31,4 +26,4 @@ noinst_HEADERS = \
serial.h \
tty.c
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+13 -14
View File
@@ -1,6 +1,4 @@
/******************************************************************************
*
* $Id$
/*****************************************************************************
*
* Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
*
@@ -19,7 +17,7 @@
* with the IgH EtherCAT Master; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
****************************************************************************/
#include <linux/module.h>
#include <linux/err.h>
@@ -29,14 +27,14 @@
#include "../../include/ecrt.h" // EtherCAT realtime interface
#include "../../include/ectty.h" // EtherCAT TTY interface
/*****************************************************************************/
/****************************************************************************/
// Optional features
#define PFX "ec_tty_example: "
#define DEBUG 0
/*****************************************************************************/
/****************************************************************************/
#define VendorIdBeckhoff 0x00000002
#define ProductCodeBeckhoffEL6002 0x17723052
@@ -44,7 +42,7 @@
#define VendorIdIds 0x000012ad
#define ProductCodeIdsCSI71A 0x17723052
/*****************************************************************************/
/****************************************************************************/
typedef enum {
SER_REQUEST_INIT,
@@ -108,7 +106,7 @@ typedef struct {
LIST_HEAD(handlers);
/*****************************************************************************/
/****************************************************************************/
/* Beckhoff EL6002
* Vendor ID: 0x00000002
@@ -546,7 +544,8 @@ void el60xx_port_run(el60xx_port_t *port, u8 *pd)
tx_accepted_toggle = status & 0x0001;
if (tx_accepted_toggle != port->tx_accepted_toggle) { // ready
port->tx_data_size =
ectty_tx_data(port->tty, port->tx_data, port->max_tx_data_size);
ectty_tx_data(port->tty, port->tx_data,
port->max_tx_data_size);
if (port->tx_data_size) {
#if DEBUG
printk(KERN_INFO PFX "%s: Sending %u bytes.\n",
@@ -723,7 +722,7 @@ void el6002_run(el6002_t *el6002, u8 *pd)
}
}
/*****************************************************************************/
/****************************************************************************/
void run_serial_devices(u8 *pd)
{
@@ -734,7 +733,7 @@ void run_serial_devices(u8 *pd)
}
}
/*****************************************************************************/
/****************************************************************************/
int create_el6002_handler(ec_master_t *master, ec_domain_t *domain,
u16 position, u32 vendor, u32 product)
@@ -761,7 +760,7 @@ int create_el6002_handler(ec_master_t *master, ec_domain_t *domain,
return 0;
}
/*****************************************************************************/
/****************************************************************************/
int create_serial_devices(ec_master_t *master, ec_domain_t *domain)
{
@@ -815,7 +814,7 @@ out_return:
return ret;
}
/*****************************************************************************/
/****************************************************************************/
void free_serial_devices(void)
{
@@ -832,4 +831,4 @@ void free_serial_devices(void)
printk(KERN_INFO PFX "Finished cleaning up serial devices.\n");
}
/*****************************************************************************/
/****************************************************************************/
+3 -5
View File
@@ -1,6 +1,4 @@
/******************************************************************************
*
* $Id$
/*****************************************************************************
*
* Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
*
@@ -19,11 +17,11 @@
* with the IgH EtherCAT Master; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
****************************************************************************/
int create_serial_devices(ec_master_t *, ec_domain_t *);
void free_serial_devices(void);
void run_serial_devices(u8 *);
/*****************************************************************************/
/****************************************************************************/
+15 -17
View File
@@ -1,6 +1,4 @@
/******************************************************************************
*
* $Id$
/*****************************************************************************
*
* Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
*
@@ -19,7 +17,7 @@
* with the IgH EtherCAT Master; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
****************************************************************************/
#include <linux/version.h>
#include <linux/module.h>
@@ -32,7 +30,7 @@
#include "serial.h"
/*****************************************************************************/
/****************************************************************************/
// Module parameters
#define FREQUENCY 100
@@ -41,7 +39,7 @@
#define PFX "ec_tty_example: "
/*****************************************************************************/
/****************************************************************************/
// EtherCAT
static ec_master_t *master = NULL;
@@ -54,7 +52,7 @@ static ec_domain_state_t domain1_state = {};
// Timer
static struct timer_list timer;
/*****************************************************************************/
/****************************************************************************/
// process data
static uint8_t *domain1_pd; // process data memory
@@ -65,7 +63,7 @@ static uint8_t *domain1_pd; // process data memory
static unsigned int counter = 0;
/*****************************************************************************/
/****************************************************************************/
void check_domain1_state(void)
{
@@ -83,7 +81,7 @@ void check_domain1_state(void)
domain1_state = ds;
}
/*****************************************************************************/
/****************************************************************************/
void check_master_state(void)
{
@@ -103,7 +101,7 @@ void check_master_state(void)
master_state = ms;
}
/*****************************************************************************/
/****************************************************************************/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
void cyclic_task(struct timer_list *t)
@@ -142,7 +140,7 @@ void cyclic_task(unsigned long data)
add_timer(&timer);
}
/*****************************************************************************/
/****************************************************************************/
void send_callback(void *cb_data)
{
@@ -152,7 +150,7 @@ void send_callback(void *cb_data)
up(&master_sem);
}
/*****************************************************************************/
/****************************************************************************/
void receive_callback(void *cb_data)
{
@@ -162,7 +160,7 @@ void receive_callback(void *cb_data)
up(&master_sem);
}
/*****************************************************************************/
/****************************************************************************/
int __init init_mini_module(void)
{
@@ -229,7 +227,7 @@ out_return:
return ret;
}
/*****************************************************************************/
/****************************************************************************/
void __exit cleanup_mini_module(void)
{
@@ -245,13 +243,13 @@ void __exit cleanup_mini_module(void)
printk(KERN_INFO PFX "Unloading.\n");
}
/*****************************************************************************/
/****************************************************************************/
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Florian Pose <fp@igh-essen.com>");
MODULE_AUTHOR("Florian Pose <fp@igh.de>");
MODULE_DESCRIPTION("EtherCAT minimal test environment");
module_init(init_mini_module);
module_exit(cleanup_mini_module);
/*****************************************************************************/
/****************************************************************************/
+3 -5
View File
@@ -1,6 +1,4 @@
#------------------------------------------------------------------------------
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -19,7 +17,7 @@
# the IgH EtherCAT Master; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
noinst_PROGRAMS = ec_user_example
@@ -27,4 +25,4 @@ ec_user_example_SOURCES = main.c
ec_user_example_CFLAGS = -I$(top_srcdir)/include -Wall
ec_user_example_LDFLAGS = -L$(top_builddir)/lib/.libs -lethercat -lrt
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+5 -7
View File
@@ -1,6 +1,4 @@
/*****************************************************************************
*
* $Id$
*
* Copyright (C) 2007-2009 Florian Pose, Ingenieurgemeinschaft IgH
*
@@ -98,7 +96,7 @@ const static ec_pdo_entry_reg_t domain1_regs[] = {
static unsigned int counter = 0;
static unsigned int blink = 0;
/*****************************************************************************/
/****************************************************************************/
// Analog in --------------------------
@@ -162,7 +160,7 @@ static ec_sync_info_t el2004_syncs[] = {
{0xff}
};
/*****************************************************************************/
/****************************************************************************/
void check_domain1_state(void)
{
@@ -180,7 +178,7 @@ void check_domain1_state(void)
domain1_state = ds;
}
/*****************************************************************************/
/****************************************************************************/
void check_master_state(void)
{
@@ -201,7 +199,7 @@ void check_master_state(void)
master_state = ms;
}
/*****************************************************************************/
/****************************************************************************/
void check_slave_config_states(void)
{
@@ -222,7 +220,7 @@ void check_slave_config_states(void)
sc_ana_in_state = s;
}
/*****************************************************************************/
/****************************************************************************/
void cyclic_task()
{
-2
View File
@@ -1,7 +1,5 @@
#------------------------------------------------------------------------------
#
# $Id$
#
# Copyright (C) 2006-2012 Florian Pose, Ingenieurgemeinschaft IgH
#
# This file is part of the IgH EtherCAT Master.
+3 -5
View File
@@ -1,10 +1,8 @@
/******************************************************************************
*
* $Id$
/*****************************************************************************
*
* Copyright (C) 2009-2010 Moehwald GmbH B. Benner
* 2011 IgH Andreas Stewering-Bone
* 2012 Florian Pose <fp@igh-essen.com>
* 2012 Florian Pose <fp@igh.de>
*
* This file is part of the IgH EtherCAT master
*
@@ -20,7 +18,7 @@
* You should have received a copy of the GNU General Public License along
* with the IgH EtherCAT master. If not, see <http://www.gnu.org/licenses/>.
*
*****************************************************************************/
****************************************************************************/
#include <errno.h>
#include <signal.h>
+6 -8
View File
@@ -1,6 +1,4 @@
#------------------------------------------------------------------------------
#
# $Id$
#-----------------------------------------------------------------------------
#
# Copyright (C) 2006-2012 Florian Pose, Ingenieurgemeinschaft IgH
#
@@ -15,11 +13,11 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# the IgH EtherCAT Master; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# You should have received a copy of the GNU General Public License along
# with the IgH EtherCAT Master; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
noinst_PROGRAMS = ec_xenomai_posix_example
@@ -36,4 +34,4 @@ ec_xenomai_posix_example_LDFLAGS = \
$(XENOMAI_POSIX_LDFLAGS) \
$(XENOMAI_RTDM_LDFLAGS)
#------------------------------------------------------------------------------
#-----------------------------------------------------------------------------
+7 -9
View File
@@ -1,9 +1,7 @@
/******************************************************************************
*
* $Id$
/*****************************************************************************
*
* Copyright (C) 2011 IgH Andreas Stewering-Bone
* 2012 Florian Pose <fp@igh-essen.com>
* 2012 Florian Pose <fp@igh.de>
*
* This file is part of the IgH EtherCAT master
*
@@ -19,7 +17,7 @@
* You should have received a copy of the GNU General Public License along
* with the IgH EtherCAT master. If not, see <http://www.gnu.org/licenses/>.
*
*****************************************************************************/
****************************************************************************/
#include <errno.h>
#include <mqueue.h>
@@ -196,18 +194,18 @@ void *my_thread(void *arg)
return NULL;
}
/****************************************************************************
/*****************************************************************************
* Signal handler
***************************************************************************/
****************************************************************************/
void signal_handler(int sig)
{
run = 0;
}
/****************************************************************************
/*****************************************************************************
* Main function
***************************************************************************/
****************************************************************************/
int main(int argc, char *argv[])
{