diff --git a/drivers/ec_master.c b/drivers/ec_master.c index 79887713121a55b4b7d2ef267d1f5cc5b42f0202..8f5ff3536114cc84c85bb62339f8be0a85950710 100644 --- a/drivers/ec_master.c +++ b/drivers/ec_master.c @@ -706,17 +706,16 @@ int EtherCAT_state_change(EtherCAT_master_t *master, 0x0120, 2, data); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) != 0)) { - printk(KERN_ERR "EtherCAT: Could not set state %02X -" - " Unable to send!\n", state_and_ack); - return -2; + printk(KERN_ERR "EtherCAT: Could not set state %02X - Unable to send!\n", + state_and_ack); + return -1; } if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Could not set state %02X -" - " Device \"%s %s\" (%d) did not respond!\n", - state_and_ack, slave->desc->vendor_name, - slave->desc->product_name, slave->ring_position*(-1)); - return -3; + printk(KERN_ERR "EtherCAT: Could not set state %02X - Device \"%s %s\"" + " (%d) did not respond!\n", state_and_ack, slave->desc->vendor_name, + slave->desc->product_name, slave->ring_position * (-1)); + return -1; } slave->requested_state = state_and_ack & 0x0F; @@ -729,23 +728,21 @@ int EtherCAT_state_change(EtherCAT_master_t *master, EtherCAT_command_read(&cmd, slave->station_address, 0x0130, 2); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) != 0)) { - printk(KERN_ERR "EtherCAT: Could not check" - " state %02X - Unable to send!\n", state_and_ack); - return -2; + printk(KERN_ERR "EtherCAT: Could not check state %02X - Unable to" + " send!\n", state_and_ack); + return -1; } if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Could not check" - " state %02X - Device did not respond!\n", - state_and_ack); - return -3; + printk(KERN_ERR "EtherCAT: Could not check state %02X - Device did not" + " respond!\n", state_and_ack); + return -1; } if (unlikely(cmd.data[0] & 0x10)) { // State change error - printk(KERN_ERR "EtherCAT: Could not set state %02X -" - " Device refused state change (code %02X)!\n", - state_and_ack, cmd.data[0]); - return -4; + printk(KERN_ERR "EtherCAT: Could not set state %02X - Device refused" + " state change (code %02X)!\n", state_and_ack, cmd.data[0]); + return -1; } if (likely(cmd.data[0] == (state_and_ack & 0x0F))) { @@ -757,9 +754,9 @@ int EtherCAT_state_change(EtherCAT_master_t *master, } if (unlikely(!tries_left)) { - printk(KERN_ERR "EtherCAT: Could not check state %02X -" - " Timeout while checking!\n", state_and_ack); - return -5; + printk(KERN_ERR "EtherCAT: Could not check state %02X - Timeout while" + " checking!\n", state_and_ack); + return -1; } slave->current_state = state_and_ack & 0x0F; @@ -792,24 +789,21 @@ int EtherCAT_activate_slave(EtherCAT_master_t *master, desc = slave->desc; - if (unlikely(EtherCAT_state_change(master, slave, - ECAT_STATE_INIT) != 0)) + if (unlikely(EtherCAT_state_change(master, slave, ECAT_STATE_INIT) != 0)) return -1; // Resetting FMMU's memset(data, 0x00, 256); - EtherCAT_command_write(&cmd, slave->station_address, - 0x0600, 256, data); + EtherCAT_command_write(&cmd, slave->station_address, 0x0600, 256, data); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Resetting FMMUs -" - " Slave %04X did not respond!\n", - slave->station_address); + printk(KERN_ERR "EtherCAT: Resetting FMMUs - Slave %04X did not" + " respond!\n", slave->station_address); return -1; } @@ -819,16 +813,14 @@ int EtherCAT_activate_slave(EtherCAT_master_t *master, { memset(data, 0x00, 256); - EtherCAT_command_write(&cmd, slave->station_address, - 0x0800, 256, data); + EtherCAT_command_write(&cmd, slave->station_address, 0x0800, 256, data); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Resetting SMs -" - " Slave %04X did not respond!\n", - slave->station_address); + printk(KERN_ERR "EtherCAT: Resetting SMs - Slave %04X did not" + " respond!\n", slave->station_address); return -1; } } @@ -839,24 +831,23 @@ int EtherCAT_activate_slave(EtherCAT_master_t *master, { if (desc->sm0) { - EtherCAT_command_write(&cmd, slave->station_address, - 0x0800, 8, desc->sm0); + EtherCAT_command_write(&cmd, slave->station_address, 0x0800, 8, + desc->sm0); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Setting SM0 -" - " Slave %04X did not respond!\n", - slave->station_address); + printk(KERN_ERR "EtherCAT: Setting SM0 - Slave %04X did not" + " respond!\n", slave->station_address); return -1; } } if (desc->sm1) { - EtherCAT_command_write(&cmd, slave->station_address, - 0x0808, 8, desc->sm1); + EtherCAT_command_write(&cmd, slave->station_address, 0x0808, 8, + desc->sm1); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; @@ -872,8 +863,7 @@ int EtherCAT_activate_slave(EtherCAT_master_t *master, // Change state to PREOP - if (unlikely(EtherCAT_state_change(master, slave, - ECAT_STATE_PREOP) != 0)) + if (unlikely(EtherCAT_state_change(master, slave, ECAT_STATE_PREOP) != 0)) return -1; // Set FMMU's @@ -893,16 +883,14 @@ int EtherCAT_activate_slave(EtherCAT_master_t *master, fmmu[2] = (slave->logical_address & 0x00FF0000) >> 16; fmmu[3] = (slave->logical_address & 0xFF000000) >> 24; - EtherCAT_command_write(&cmd, slave->station_address, - 0x0600, 16, fmmu); + EtherCAT_command_write(&cmd, slave->station_address, 0x0600, 16, fmmu); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Setting FMMU0 -" - " Slave %04X did not respond!\n", - slave->station_address); + printk(KERN_ERR "EtherCAT: Setting FMMU0 - Slave %04X did not" + " respond!\n", slave->station_address); return -1; } } @@ -913,32 +901,30 @@ int EtherCAT_activate_slave(EtherCAT_master_t *master, { if (desc->sm0) { - EtherCAT_command_write(&cmd, slave->station_address, - 0x0800, 8, desc->sm0); + EtherCAT_command_write(&cmd, slave->station_address, 0x0800, 8, + desc->sm0); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Setting SM0 -" - " Slave %04X did not respond!\n", - slave->station_address); + printk(KERN_ERR "EtherCAT: Setting SM0 - Slave %04X did not" + " respond!\n", slave->station_address); return -1; } } if (desc->sm1) { - EtherCAT_command_write(&cmd, slave->station_address, - 0x0808, 8, desc->sm1); + EtherCAT_command_write(&cmd, slave->station_address, 0x0808, 8, + desc->sm1); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Setting SM1 -" - " Slave %04X did not respond!\n", - slave->station_address); + printk(KERN_ERR "EtherCAT: Setting SM1 - Slave %04X did not" + " respond!\n", slave->station_address); return -1; } } @@ -946,15 +932,13 @@ int EtherCAT_activate_slave(EtherCAT_master_t *master, if (desc->sm2) { - EtherCAT_command_write(&cmd, slave->station_address, - 0x0810, 8, desc->sm2); + EtherCAT_command_write(&cmd, slave->station_address, 0x0810, 8, desc->sm2); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Setting SM2 -" - " Slave %04X did not respond!\n", + printk(KERN_ERR "EtherCAT: Setting SM2 - Slave %04X did not respond!\n", slave->station_address); return -1; } @@ -962,28 +946,24 @@ int EtherCAT_activate_slave(EtherCAT_master_t *master, if (desc->sm3) { - EtherCAT_command_write(&cmd, slave->station_address, - 0x0818, 8, desc->sm3); + EtherCAT_command_write(&cmd, slave->station_address, 0x0818, 8, desc->sm3); if (unlikely(EtherCAT_simple_send_receive(master, &cmd) < 0)) return -1; if (unlikely(cmd.working_counter != 1)) { - printk(KERN_ERR "EtherCAT: Setting SM3 -" - " Slave %04X did not respond!\n", + printk(KERN_ERR "EtherCAT: Setting SM3 - Slave %04X did not respond!\n", slave->station_address); return -1; } } // Change state to SAVEOP - if (unlikely(EtherCAT_state_change(master, slave, - ECAT_STATE_SAVEOP) != 0)) + if (unlikely(EtherCAT_state_change(master, slave, ECAT_STATE_SAVEOP) != 0)) return -1; // Change state to OP - if (unlikely(EtherCAT_state_change(master, slave, - ECAT_STATE_OP) != 0)) + if (unlikely(EtherCAT_state_change(master, slave, ECAT_STATE_OP) != 0)) return -1; return 0; diff --git a/rt/msr_jitter.c b/rt/msr_jitter.c index 1928958c36a5c125bceef1da27196325ed9639fd..8fa13006f6a4a72c17a2196955791a18922bb0c6 100644 --- a/rt/msr_jitter.c +++ b/rt/msr_jitter.c @@ -1,58 +1,20 @@ -/************************************************************************************************** -* -* msr_jitter.c -* -* -* Autor: Wilhelm Hagemeister -* -* (C) Copyright IgH 2002 -* Ingenieurgemeinschaft IgH -* Heinz-Bäcker Str. 34 -* D-45356 Essen -* Tel.: +49 201/61 99 31 -* Fax.: +49 201/61 98 36 -* E-mail: hm@igh-essen.com -* -* -* $RCSfile: msr_adeos_latency.c,v $ -* $Revision: 1.3 $ -* $Author: hm $ -* $Date: 2005/12/07 20:13:53 $ -* $State: Exp $ -* -* -* $Log: msr_adeos_latency.c,v $ -* Revision 1.3 2005/12/07 20:13:53 hm -* *** empty log message *** -* -* Revision 1.2 2005/12/07 15:56:13 hm -* *** empty log message *** -* -* Revision 1.1 2005/12/07 08:43:40 hm -* Initial revision -* -* Revision 1.5 2005/11/14 20:28:09 hm -* *** empty log message *** -* -* Revision 1.4 2005/11/13 10:34:07 hm -* *** empty log message *** -* -* Revision 1.3 2005/11/12 20:52:46 hm -* *** empty log message *** -* -* Revision 1.2 2005/11/12 20:51:27 hm -* *** empty log message *** -* -* Revision 1.1 2005/11/12 19:16:02 hm -* Initial revision -* -* Revision 1.13 2005/06/17 11:35:13 hm -* *** empty log message *** -* -* -* -* -**************************************************************************************************/ +/****************************************************************************** + * + * msr_jitter.c + * + * Autor: Wilhelm Hagemeister + * + * (C) Copyright IgH 2002 + * Ingenieurgemeinschaft IgH + * Heinz-Bäcker Str. 34 + * D-45356 Essen + * Tel.: +49 201/61 99 31 + * Fax.: +49 201/61 98 36 + * E-mail: hm@igh-essen.com + * + * $Id$ + * + *****************************************************************************/ #ifndef __KERNEL__ # define __KERNEL__ @@ -71,27 +33,24 @@ #include <msr_reg.h> #include "msr_jitter.h" -/*--includes-------------------------------------------------------------------------------------*/ - +/*--includes-----------------------------------------------------------------*/ -/*--external functions---------------------------------------------------------------------------*/ +/*--external functions-------------------------------------------------------*/ -/*--external data--------------------------------------------------------------------------------*/ +/*--external data------------------------------------------------------------*/ -/*--public data----------------------------------------------------------------------------------*/ +/*--public data--------------------------------------------------------------*/ -/*--local data-----------------------------------------------------------------------------------*/ +/*--local data---------------------------------------------------------------*/ #define NUMCLASSES 16 -static int jittime[NUMCLASSES]={0,1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000}; //in usec +static int jittime[NUMCLASSES]={0,1,2,5,10,20,50,100,200,500, + 1000,2000,5000,10000,20000,50000}; //in usec static int jitcount[NUMCLASSES]; static double jitpercent[NUMCLASSES]; - static unsigned int tcount = 1; - - static void msr_jit_read(void) { int i; @@ -104,27 +63,28 @@ static void msr_jit_read(void) void msr_jitter_init(void) { - msr_reg_int_list("/Taskinfo/Jitter/Classes","usec",&jittime[0],MSR_R,NUMCLASSES,NULL,NULL,NULL); - msr_reg_int_list("/Taskinfo/Jitter/Count","",&jitcount[0],MSR_R,NUMCLASSES,NULL,NULL,NULL); - msr_reg_dbl_list("/Taskinfo/Jitter/percent","%",&jitpercent[0],MSR_R,NUMCLASSES,NULL,NULL,&msr_jit_read); + msr_reg_int_list("/Taskinfo/Jitter/Classes","usec", + &jittime[0],MSR_R,NUMCLASSES,NULL,NULL,NULL); + msr_reg_int_list("/Taskinfo/Jitter/Count","", + &jitcount[0],MSR_R,NUMCLASSES,NULL,NULL,NULL); + msr_reg_dbl_list("/Taskinfo/Jitter/percent","%", + &jitpercent[0],MSR_R,NUMCLASSES,NULL,NULL,&msr_jit_read); } -/* -*************************************************************************************************** -* -* Function: msr_jitter_run -* -* Beschreibung: -* -* -* Parameter: Zeiger auf msr_data -* -* Rückgabe: -* -* Status: exp -* -*************************************************************************************************** -*/ +/****************************************************************************** + * + * Function: msr_jitter_run + * + * Beschreibung: + * + * + * Parameter: Zeiger auf msr_data + * + * Rückgabe: + * + * Status: exp + * + *****************************************************************************/ void msr_jitter_run(unsigned int hz) { @@ -140,9 +100,11 @@ void msr_jitter_run(unsigned int hz) { //Zeitabstand zwischen zwei Interrupts in usec - dt = ((unsigned long)(100000/HZ)*((unsigned long)(k-j)))/(current_cpu_data.loops_per_jiffy/10); + dt = ((unsigned long)(100000/HZ)*((unsigned long)(k-j))) + /(current_cpu_data.loops_per_jiffy/10); - jitter = (unsigned int)abs((int)dt-(int)1000000/hz); //jitter errechnet zum Sollabtastrate + jitter = (unsigned int)abs((int)dt-(int)1000000/hz); + //jitter errechnet zum Sollabtastrate //in die Klassen einsortieren if(!firstrun) { //das erste mal nicht einsortieren @@ -165,20 +127,3 @@ void msr_jitter_run(unsigned int hz) { } - - - - - - - - - - - - - - - - - diff --git a/rt/msr_jitter.h b/rt/msr_jitter.h index 8ce1d46fcaebac8dc4677f54348de1703b0ca80b..2d01bb05515bff9ae2cc7ddcecdb7c4436a127ff 100644 --- a/rt/msr_jitter.h +++ b/rt/msr_jitter.h @@ -1,60 +1,22 @@ -/************************************************************************************************** -* -* msr_jitter.c -* -* -* Autor: Wilhelm Hagemeister -* -* (C) Copyright IgH 2002 -* Ingenieurgemeinschaft IgH -* Heinz-Bäcker Str. 34 -* D-45356 Essen -* Tel.: +49 201/61 99 31 -* Fax.: +49 201/61 98 36 -* E-mail: hm@igh-essen.com -* -* -* $RCSfile: msr_adeos_latency.c,v $ -* $Revision: 1.3 $ -* $Author: hm $ -* $Date: 2005/12/07 20:13:53 $ -* $State: Exp $ -* -* -* $Log: msr_adeos_latency.c,v $ -* Revision 1.3 2005/12/07 20:13:53 hm -* *** empty log message *** -* -* Revision 1.2 2005/12/07 15:56:13 hm -* *** empty log message *** -* -* Revision 1.1 2005/12/07 08:43:40 hm -* Initial revision -* -* Revision 1.5 2005/11/14 20:28:09 hm -* *** empty log message *** -* -* Revision 1.4 2005/11/13 10:34:07 hm -* *** empty log message *** -* -* Revision 1.3 2005/11/12 20:52:46 hm -* *** empty log message *** -* -* Revision 1.2 2005/11/12 20:51:27 hm -* *** empty log message *** -* -* Revision 1.1 2005/11/12 19:16:02 hm -* Initial revision -* -* Revision 1.13 2005/06/17 11:35:13 hm -* *** empty log message *** -* -* -* -* -**************************************************************************************************/ +/****************************************************************************** + * + * msr_jitter.c + * + * Autor: Wilhelm Hagemeister + * + * (C) Copyright IgH 2002 + * Ingenieurgemeinschaft IgH + * Heinz-Bäcker Str. 34 + * D-45356 Essen + * Tel.: +49 201/61 99 31 + * Fax.: +49 201/61 98 36 + * E-mail: hm@igh-essen.com + * + * $Id$ + * + *****************************************************************************/ -/*--Schutz vor mehrfachem includieren------------------------------------------------------------*/ +/*--Schutz vor mehrfachem includieren----------------------------------------*/ #ifndef _MSR_JITTER_H_ #define _MSR_JITTER_H_ diff --git a/rt/msr_module.c b/rt/msr_module.c old mode 100755 new mode 100644 index 8a09414a47a8bc841379c719cd6c99d0bd79ab87..b934f011d1f5781a0ef8273e3bd7706a728a0c59 --- a/rt/msr_module.c +++ b/rt/msr_module.c @@ -399,6 +399,7 @@ int __init init_module() for (i = 0; i < ECAT_SLAVES_COUNT; i++) { if (EtherCAT_activate_slave(ecat_master, ecat_slaves + i) < 0) { + printk(KERN_ERR "EtherCAT: Could not activate slave %i!\n", i); goto out_release_master; } } @@ -436,10 +437,10 @@ void __exit cleanup_module() ipipe_tune_timer(1000000000UL/HZ,0); //alten Timertakt wieder herstellen ipipe_unregister_domain(&this_domain); - printk(KERN_INFO "=== Stopping EtherCAT environment... ===\n"); - if (ecat_master) { + printk(KERN_INFO "=== Stopping EtherCAT environment... ===\n"); + printk(KERN_INFO "Deactivating slaves.\n"); for (i = 0; i < ECAT_SLAVES_COUNT; i++) { @@ -449,9 +450,9 @@ void __exit cleanup_module() } EtherCAT_release(ecat_master); - } - printk(KERN_INFO "=== EtherCAT environment stopped. ===\n"); + printk(KERN_INFO "=== EtherCAT environment stopped. ===\n"); + } #ifdef USE_MSR_LIB msr_rtlib_cleanup(); diff --git a/rt/msr_param.h b/rt/msr_param.h old mode 100755 new mode 100644 index 501b58d06fac2213f5c8963939836871aa36b758..c08e41bdf5f10307bf9d8ffb3cf14b6814f4d9ec --- a/rt/msr_param.h +++ b/rt/msr_param.h @@ -1,7 +1,14 @@ +/****************************************************************************** + * + * $Id$ + * + *****************************************************************************/ + #ifndef _MSR_PARAM_H_ #define _MSR_PARAM_H_ -#define MSR_ABTASTFREQUENZ 10000 //FIXME nur für den Simulator, der virtuelle 10 Mal schneller läuft ....HZ /* Abtastrate der Kan%/1€Œiso8859-15äle in [HZ]*/ -#endif +#define MSR_ABTASTFREQUENZ 10000 +#endif +/*****************************************************************************/