Commit Graph

383 Commits

Author SHA1 Message Date
Florian Pose 68e6dfc108 Implemented debug frame ring to output the last n frames for debugging
reasons.
2007-08-09 15:01:14 +00:00
Florian Pose f76d31ec92 Included datagram queuing in critical section in idle task; added some
debugging and comments.
2007-08-09 14:47:37 +00:00
Florian Pose cc0cee6757 Re-ordered criteria for datagram matching. 2007-08-09 14:40:29 +00:00
Florian Pose 20daa81763 Minor change. 2007-08-09 14:28:54 +00:00
Florian Pose 480d12021b Added debugging output for unmatched frames and those that timed out. 2007-08-07 13:33:57 +00:00
Florian Pose c9c595f94e Introduced frames_timed_out flag to notice bus failure when link down is
not detected.
2007-05-03 14:29:21 +00:00
Florian Pose f5d3ec538a Completely lock master while an EoE cycle is executing. 2007-03-16 14:42:04 +00:00
Florian Pose 9466d51185 Dynamic creation of EoE handlers. 2007-03-16 14:00:12 +00:00
Florian Pose 2a1920caaa Removed unecessary clearing of EoE handlers in master init function;
fixed possible bug on failing to initialize or add master kobject.
2007-03-16 11:23:08 +00:00
Florian Pose f5a7e78786 Slave configuration exclusively from master thread; removed
ec_master_sync_io(); introduced events in the master state machine;
locking of slave scanning and slave configuration through allow_scan
and allow_config flags.
2007-03-12 18:21:42 +00:00
Florian Pose b09000d770 Fixed skipped datagrams when not in FSM idle phase. 2007-03-12 13:59:06 +00:00
Florian Pose 571917dd1a Introduced idle flag in master state machine. 2007-03-12 12:11:43 +00:00
Florian Pose 594c3bb715 Made waiting for device semaphore uninterruptible. 2007-03-12 08:47:56 +00:00
Florian Pose 6ef75e4d45 Replaced master variable 'atomic_t available' by integer and used
semaphore in module.c instead.
2007-03-12 08:42:02 +00:00
Florian Pose 2907aebfdf Implemented SDO reading with wait queues. 2007-03-09 15:11:29 +00:00
Florian Pose b0c1fbaeb0 Removed X:Y addressing scheme, ec_slave_is_coupler(),
ec_master_calc_addressing(), coupler_index and coupler_subindex variables.
Adapted lsec script and examples.
2007-03-09 13:24:15 +00:00
Florian Pose 70482be0ac Added parameters for vendor ID and product code to ecrt_get_slave(); PDO
registration functions now take a slave pointer as argument; changed
values for ec_bus_status_t.
2007-03-09 10:24:50 +00:00
Florian Pose 8ac6516b4e Allow only MAC addresses as device identifiers; replaced master list by
master array; hand ober MAC addresses with array module parameters.
2007-03-08 18:15:25 +00:00
Florian Pose 37baf012fb Removed ecrt_master_run(), removed datagram queueing from state
machines, added datagram injection, two different master thread
functions.
2007-03-08 13:02:42 +00:00
Florian Pose b4bfda2e62 Introduced master status, ecrt_master_get_status(), tainted flag,
pdos_registered flags and pdo_slaves_offline counter.
2007-03-05 10:35:50 +00:00
Florian Pose b0285d88a9 Introduced ec_slave_online_state_t, ec_slave_set_online_state(), renamed
slave->online to ec_online_state and introduced
ec_slave_set_app_state().
2007-03-05 09:55:39 +00:00
Florian Pose 2ec4d25fce Introduced EEPROM write requests: EEPROM write operations from user
space are now queued and block until completion. Also, appropriate error
codes are returned.
2007-03-01 21:34:10 +00:00
Florian Pose 9afbed92d2 Removed eeprom_write_enable file. 2007-03-01 14:50:53 +00:00
Florian Pose 7b59f69823 Destroy slaves when leaving idle mode. 2007-02-21 13:43:47 +00:00
Florian Pose 6c08745e55 Made master devices persistent; added ec_device_attach() and ec_device_detach(). 2007-02-20 17:15:43 +00:00
Florian Pose b1a770729c Removed ktype for module kobject; added backup device for master; device
connection information and IDs in master info file.
2007-02-20 13:42:44 +00:00
Florian Pose 27f9a4af2d New module file /sys/ethercat, masters moved to /sys/ethercat/masterX. 2007-02-20 11:28:15 +00:00
Florian Pose 0f53f8fa3e Introduced device IDs; removed comment lines from 8139too; removed
ec_eoeif_count parameter.
2007-02-16 17:13:39 +00:00
Florian Pose 2cbddbb9d1 Removed XML device from master structure. 2007-02-16 13:23:57 +00:00
Florian Pose e643409867 Made ec_sync_config() and ec_fmmu_config() to methods of ec_slave_t. 2007-02-13 11:48:46 +00:00
Florian Pose 9a9e5d719c Fixed bug causing unloading of realtime module being very slow after topology change. 2007-02-12 11:15:23 +00:00
Florian Pose 6d74555dad schedule() other processes while waiting in ec_master_sync_io(). 2007-02-12 11:12:00 +00:00
Florian Pose 3b4c23a436 Ignore queued datagrams while waiting in ec_master_sync_io(). 2007-02-12 10:39:52 +00:00
Florian Pose 5f7ac3aa85 Minor changes in master thread messages. 2007-02-09 10:04:05 +00:00
Florian Pose 291d63856b Replaced ec_isr_t by ec_pollfunc_t; added poll function s in network drivers. 2007-01-12 14:28:33 +00:00
Florian Pose 413fdbb006 Minor fix on master.c (name of master thread). 2007-01-10 16:34:42 +00:00
Florian Pose df1cc1d939 Layed out slave state machines in own files fsm_slave.[ch]; renamed fsm.[ch] to fsm_master.[ch] 2007-01-10 16:32:06 +00:00
Florian Pose ba97994717 Added some documentation. 2007-01-10 10:58:49 +00:00
Florian Pose ea7e0ca982 Master workqueue replaced with kernel thread. 2007-01-10 10:45:57 +00:00
Florian Pose 81acf0c368 Fixed blocking of EoE processing while entering or leaving operational mode. 2007-01-09 14:51:00 +00:00
Florian Pose 4dc453ef55 Fixed race: Stop EoE processing when entering or leaving operation mode. 2007-01-09 12:56:03 +00:00
Florian Pose 8f51b59d3e Minor fix in master.c 2007-01-08 15:15:17 +00:00
Florian Pose ed70ae4999 Internal locking callbacks, improved locking. 2007-01-08 15:01:18 +00:00
Florian Pose 03c3e13bf9 Removed datagram.cycles_queued, needed for "starved" datagrams (deprecated). 2007-01-08 08:23:18 +00:00
Florian Pose 0c3d8c8ce1 Fixed warnings in master.c. 2006-12-18 11:51:43 +00:00
Florian Pose fc6917709a Corrected error messages in get_slave(). 2006-12-18 11:00:26 +00:00
Florian Pose b3de249e28 Fixed lost frames display bug when no frames were sent. 2006-11-24 11:09:36 +00:00
Florian Pose c0f6188104 Interface changes for version 1.2, see NEWS file. 2006-11-24 11:02:35 +00:00
Florian Pose 2568ef35d1 Added frame counter. 2006-11-21 15:46:21 +00:00
Florian Pose bae7fb4e90 Introduced "starved" datagrams. 2006-11-21 15:13:48 +00:00
Florian Pose e3b241a79a kobject_add() in constructors. 2006-11-06 14:22:35 +00:00
Florian Pose 1999d5d4a0 Minor change in master.c. 2006-11-06 14:21:35 +00:00
Florian Pose a71ecdabdd Fixed workqueue cancelling. 2006-11-06 14:15:21 +00:00
Florian Pose 9c59a83aca Remove estimated sync manager sizes when leaving operation mode. 2006-10-30 15:39:03 +00:00
Florian Pose ab80d57c03 New state in slaveconf FSM: Clear FMMU configurations after INIT. 2006-10-27 14:41:09 +00:00
Florian Pose 1f44556083 Print certain warnings only at debug_level. 2006-10-27 13:59:49 +00:00
Florian Pose fa99dfa321 Print certain logs only at debug_level. 2006-10-27 13:31:26 +00:00
Florian Pose 1154f9294d Explicit use of slave configuration FSM in ecrt_master_activate() and ecrt_master_release(). 2006-10-27 12:45:22 +00:00
Florian Pose 0573bbce4d Moved functionality of ecrt_master_deactivate() (now deprecated) to ecrt_master_release(). 2006-10-27 09:29:46 +00:00
Florian Pose 131589f534 FIX: Introduced destroy() functions for kobject-derived classes and thus fixed memory leak. 2006-10-27 09:19:58 +00:00
Florian Pose b6e88ad403 Persistent slave lists. 2006-10-26 16:29:26 +00:00
Florian Pose 4fbd230e2b Compiler flag -DSVNREV only for module.c to avoid unnecessary recompiling. 2006-10-25 16:49:53 +00:00
Florian Pose 5ae68fa1db SDO uploading via Sysfs without master FSM calling wake_up(). 2006-10-24 15:14:25 +00:00
Florian Pose daf2544626 Removed state machine running() methods. 2006-10-23 14:00:58 +00:00
Florian Pose 93658f687b Implemented SDO reading via Sysfs. 2006-10-20 13:05:48 +00:00
Florian Pose 7642448f62 Fixed memory leak in master and slave destructors. 2006-10-19 14:05:56 +00:00
Florian Pose 95e186804e Do net reset debug level on master reset. 2006-10-18 13:10:06 +00:00
Florian Pose 6d2d0b6674 Added enable bit to sync manager debugging. 2006-10-18 12:34:00 +00:00
Florian Pose 3edfc24f83 Improved SM and FMMU debugging output. 2006-10-18 12:04:24 +00:00
Florian Pose dafb6721a3 Added FMMU debugging. 2006-10-18 11:50:31 +00:00
Florian Pose d430dec17c Minor output changes in master.c 2006-10-17 14:37:46 +00:00
Florian Pose 9c7dd75ed9 Removed clear functions from headers of kobject-classes. 2006-10-17 14:19:59 +00:00
Florian Pose 302c2e77c7 Fixed serveral races while starting up under high CPU load. 2006-10-16 14:38:14 +00:00
Florian Pose 459e7f391c Serveral changes to avoid timeouts under high CPU load. 2006-10-16 09:07:49 +00:00
Florian Pose 0c8d3e94c3 Minor output changes. 2006-10-16 08:03:28 +00:00
Florian Pose 2303af54b2 Altered master version string. 2006-09-28 13:22:43 +00:00
Florian Pose 302b826fe1 Fixed race on duplicate device registering or device unregistering while requesting master. 2006-09-28 12:58:06 +00:00
Florian Pose 541ae381cb Replaced master's reserved flag by atomic_t available. 2006-09-26 16:34:24 +00:00
Florian Pose e63c611a0f Changes in ecrt_request_master(); minor output changes. 2006-09-26 16:16:13 +00:00
Florian Pose e594f09d72 Introduced per-master character devices for XML descriptions. 2006-09-19 13:28:40 +00:00
Florian Pose 024460b94b Compile/Version info in sysconfig master info file. 2006-09-08 12:51:04 +00:00
Florian Pose ac6458d2c9 Removed delayed datagram statistics. 2006-08-15 09:22:22 +00:00
Florian Pose ff83e87344 Improved datagram reception in sync_io and frame dequeuing. 2006-08-15 08:48:00 +00:00
Florian Pose dfc4089c4c Replaced longer cycle timestamps with jiffies. 2006-08-15 08:09:18 +00:00
Florian Pose 2fb55f48c7 Added EoE rate in KB/s to master info. 2006-08-08 13:06:36 +00:00
Florian Pose aaea721316 Minor changes. 2006-08-08 12:07:25 +00:00
Florian Pose 8a6172d8f2 Minor output fix. 2006-08-04 15:37:46 +00:00
Florian Pose 337d7f763b EoE rate statistics. 2006-08-04 15:31:12 +00:00
Florian Pose 577de08992 Better EoE and Idle timing measurement. 2006-08-04 13:49:22 +00:00
Florian Pose 93dcf1c86d Master information, timing. 2006-08-04 09:53:14 +00:00
Florian Pose eed6f1d855 New statistic outputs to avoid blasting the logs. 2006-08-03 20:11:20 +00:00
Florian Pose 4e9ef991e3 Renamed ec_master_receive() to ec_master_receive_datagrams(). 2006-08-03 19:47:29 +00:00
Florian Pose 25ddd08802 Measure bus time. 2006-08-03 19:17:08 +00:00
Florian Pose cd98fe51c1 Fixed bug with ec_master_eoe_start() does new coupling all the time. 2006-08-03 16:14:26 +00:00
Florian Pose 258b4d998d VERSION 1.1: New realtime interface, only state machines. 2006-08-03 12:51:17 +00:00
Florian Pose 973af4179d Renamed master parameter ec_eoe_devices to ec_eoeif_count. 2006-08-01 15:19:11 +00:00
Florian Pose 2db9c81ef7 Renamed ec_master_idle() to ec_master_idle_run(). 2006-07-28 07:36:55 +00:00
Florian Pose ae5f112b9d Reading of eeprom_write_enable. 2006-07-25 10:03:13 +00:00
Florian Pose af1e1bf033 Renamed FREERUN mode to IDLE mode. 2006-07-19 13:15:02 +00:00
Florian Pose 14fe2a8557 Renamed IDLE mode to ORPHANED mode. 2006-07-19 13:08:21 +00:00
Florian Pose 3ead0fc0b3 SysFS entry for debug level. 2006-07-18 16:48:05 +00:00
Florian Pose 0d76e9719b Prefer EEPROM sync manager information for config. 2006-07-17 13:01:38 +00:00
Florian Pose 62f69ac0fb Removed warnings acc. to patch by M. Schwerin. 2006-07-06 08:38:08 +00:00
Florian Pose 6fdf205382 Renamed command structure to datagram. 2006-07-06 08:23:24 +00:00
Florian Pose 682c27d1d8 Slave: state_error -> error_flag, error_flag only in slave state machine. 2006-06-27 20:08:15 +00:00
Florian Pose 90cc2fd7e7 Removed debugging output. 2006-06-21 10:08:30 +00:00
Florian Pose 85bd5d131d Variable-sized data fields, BK1120. 2006-06-20 14:40:04 +00:00
Florian Pose b01cc85944 Bugfix: Freerun mode not stopped cleanly on device unloading. 2006-06-14 10:23:02 +00:00
Florian Pose 67c2858334 EEPROM write enable SysFS entry. 2006-06-02 12:01:47 +00:00
Florian Pose 4950aed6eb Better state-dependent behaviour for EoE-capable slaves. 2006-05-26 14:28:49 +00:00
Florian Pose a1850ae9c3 Added some documentation. 2006-05-22 09:16:12 +00:00
Florian Pose 47585b668a Fixed bug with coupling multiple EoE handlers. 2006-05-19 13:39:35 +00:00
Florian Pose bcd07c466b Changed free-run frequency to HZ. 2006-05-19 13:38:16 +00:00
Florian Pose 4ea2816432 EoE in Free-Run mode; Finished slave configuration state machine. 2006-05-19 13:23:11 +00:00
Florian Pose 2916e10b50 Changed license headers and added EtherCAT license notice. 2006-05-18 12:35:47 +00:00
Florian Pose f36dd15ccc Removed EoE workqueue option. 2006-05-16 13:03:09 +00:00
Florian Pose 13c2904e0b Added finite state machine (FSM) processing. 2006-05-16 11:57:06 +00:00
Florian Pose df6f48c98a Started freerun state machine development. 2006-05-12 14:48:24 +00:00
Florian Pose 0afb6324b8 No master locking, if no EoE devices are "up". 2006-05-12 12:40:45 +00:00
Florian Pose cab99683df Added EC_EOE_FREQUENCY 2006-05-10 13:56:23 +00:00
Florian Pose c5a63ad548 EoE with workqueue; bugfix in ec_master_init() 2006-05-10 11:51:05 +00:00
Florian Pose 7df9388fed EoE frame queuing, receiving of fragmented frames; no TCP possible yet. 2006-05-05 07:20:10 +00:00
Florian Pose 94c930a5bb Using kernel Ethernet constants. 2006-05-03 07:19:19 +00:00
Florian Pose 9821b7ca87 command timeout, EoE processing with kernel timer. 2006-04-26 10:15:02 +00:00
Florian Pose 1f345f7df6 Prepared EoE processing with workqueue. 2006-04-25 13:43:13 +00:00
Florian Pose c7020c319d Locking callback interface. 2006-04-25 12:04:04 +00:00
Florian Pose ba806d5094 EoE net_device implementation. 2006-04-25 11:39:33 +00:00
Florian Pose 42fca68ae7 Doxygen added interface modules and file documentation. 2006-04-24 10:10:02 +00:00
Florian Pose b3389cee9f GPLv2 License and enhanced Doxygen output. 2006-04-21 12:35:17 +00:00
Florian Pose 91c739da77 Translated all comments and documentation to english language. 2006-04-20 13:31:31 +00:00
Florian Pose 7818664587 Prepared Free-Run mode 2006-04-12 10:40:32 +00:00
Florian Pose ad6b1732d6 Better calc. of coupler address; coupler address in SysFS; better output of ec_list 2006-04-11 14:12:01 +00:00
Florian Pose 52a37f1e08 Macro for SysFS attribute definition 2006-04-11 10:17:30 +00:00
Florian Pose 849e02da7c Slaves stored in list, slaves in SysFS 2006-04-11 09:12:00 +00:00
Florian Pose d876fe7731 Sourced SysFS attribute show method prototypes out of headers. 2006-04-10 15:00:03 +00:00
Florian Pose 4d3e4f5625 MERGE branches/sysfs -> trunk (whole SysFS implementation) 2006-04-10 14:25:02 +00:00
Florian Pose 652cb7d123 Sending of multiple frames 2006-04-10 10:53:12 +00:00
Florian Pose 0d72a7dfcb Fixed bug concerning spuriously shown EoE-Errors. 2006-04-07 14:35:29 +00:00
Florian Pose 84bd407874 Better outputs concerning responding slaves. 2006-04-06 09:32:30 +00:00
Florian Pose 03ae7f543b AL status code reading after failed state transition. 2006-04-05 14:02:56 +00:00
Florian Pose 44c00c852d Bugfix: Discovered memory leak. 2006-04-05 11:46:13 +00:00
Florian Pose 7bd5f4dfb5 Plugfest: Configure mailbox for unknown slaves. 2006-04-05 08:58:00 +00:00
Florian Pose 2fa964880b Plugfest: master_open()/close() ausgelagert. 2006-04-05 07:55:51 +00:00
Florian Pose 4b4092fd7e Mailbox-Interface ausgelagert, erster EOE-Ansatz. 2006-04-03 14:12:45 +00:00
Florian Pose 8306f3e3c1 Dynamischer Kommandospeicher, Domain-Kommandos als Liste. 2006-04-03 10:03:34 +00:00
Florian Pose d919deed4b Verbosity level in ecrt_master_print(). 2006-03-29 15:23:10 +00:00
Florian Pose 5722b4bc9a SDO-Schnittstelle verbessert. 2006-03-29 10:30:13 +00:00
Florian Pose 3b8f2472a5 Dynamische Mailbox-Kommunikation, auch mit unbekannten Slaves. 2006-03-28 15:45:19 +00:00
Florian Pose 1e150e4553 Laden der SDO Dictionaries funktioniert. 2006-03-28 13:42:50 +00:00
Florian Pose 9ae1bdf63e Unterstützte Prot. auslesen, Mailbox in Slave ausgelagert, Bugfix in Anzeige des Watch-Frames und erste SDO-List-Abfrage. 2006-03-27 15:52:08 +00:00
Florian Pose e9c68fda29 Watch-Kommando 2006-03-27 09:53:59 +00:00
Florian Pose e84f011468 Bugfix: Absturz bei unbekannter Klemme. 2006-03-24 08:56:16 +00:00
Florian Pose 199dcda810 64bit-Division vermieden. 2006-03-21 14:35:52 +00:00
Florian Pose 58d3c00f3d Verschiedene Timeouts verlängert. 2006-03-21 14:23:23 +00:00
Florian Pose bdf2a74f90 Slave-Alias korrigiert. 2006-03-20 15:40:34 +00:00
Florian Pose e6ac6a1900 Slave alias implementiert. 2006-03-20 15:28:25 +00:00
Florian Pose 290d5d86a4 Do-Schleifen ersetzt. 2006-03-20 13:36:10 +00:00
Florian Pose 002ea06431 Bugfix: SDO download. SDO abort codes ausgeben. 2006-03-20 11:02:39 +00:00
Florian Pose 39c4b88d02 Bugfix: EXPORT_SYMBOL für ec_master_prepare_async_io() vergessen. 2006-03-20 08:24:12 +00:00
Florian Pose c9e8fc62c9 ecrt_master_prepare_async_io() hinzugefügt. 2006-03-17 16:25:02 +00:00
Florian Pose 1c0347347a MERGE branches/async -> trunk (alle Unterschiede übernommen) 2006-03-17 14:21:35 +00:00
Florian Pose 38f5bccbca MERGE branches/async -r243:244 -> trunk (intypes). 2006-03-08 13:23:56 +00:00
Florian Pose b38ffbe720 MERGE branches/async 222:233 -> trunk (Kommando-Warteschlangen). 2006-03-06 15:12:34 +00:00
Florian Pose 3a98ea9715 Domains als Liste verwaltet. 2006-02-28 13:07:05 +00:00
Florian Pose a84b1adce5 Zyklische Ausgaben um "Verzögerte" Rahmen erweitert. 2006-02-28 11:36:29 +00:00
Florian Pose 42f8695d18 Code-Dokumentation angepasst. 2006-02-28 11:10:57 +00:00
Florian Pose 59be77d01d Rahmen jetzt zustandslos. 2006-02-28 09:25:51 +00:00
Florian Pose 324ce91d67 Wiederholtes Senden, wenn keine Antwort. 2006-02-28 09:09:08 +00:00
Florian Pose 48ed6bda64 printk durch Makros ersetzt. 2006-02-24 16:10:52 +00:00
Florian Pose cbcf404f96 Buskoppler werden jetzt gesondert behandelt. 2006-02-24 13:54:27 +00:00
Florian Pose 52aaf39561 Nicht registrierte Slaves in PREOP schalten. 2006-02-24 13:34:31 +00:00
Florian Pose f99f9b3e23 EC_READ/WRITE-Makros verwenden Makros aud asm/byteorder.h und werden konsequent verwendet. 2006-02-24 10:19:26 +00:00
Florian Pose b49d9be301 Neues Slave-Interface, CRC-Prüfung und mehrfaches Scannen nun ungefährlich. 2006-02-23 13:38:54 +00:00
Florian Pose 4d65b22b0f Dynamische FMMU-Konfiguration, zwei Kopieroperationen eingespart, Einrückungen angepasst. 2006-02-23 09:58:50 +00:00
Florian Pose 58edfcfe3e Neue ASCII-Adressierung und Code-Dokumantation. 2006-02-14 14:50:20 +00:00
Florian Pose efa310c45e SSI-Klemmen-Interface und kleinere Änderungen. 2006-02-13 14:11:33 +00:00
Florian Pose fb4b07cf52 CANopen over EtherCAT. 2006-02-03 16:23:52 +00:00
Florian Pose 842f163d28 Unbekannte Klemmen erlaubt, EL5001 integriert. 2006-02-03 10:46:33 +00:00
Florian Pose 0dc495bf11 register_slave_list() und Bugfix in deactivate_slaves() 2006-01-26 13:41:47 +00:00
Florian Pose a8ef8e2cbf Code-Dokumentation mit Doxygen aufgearbeitet. 2006-01-26 09:12:09 +00:00
Florian Pose 5ceefe4379 Bugfix im Master, ec_master_reset() und laufendes Beispiel in rt. 2006-01-20 16:04:10 +00:00
Florian Pose 5fb6877412 Mit neuer Schnittstelle wieder lauffähig. 2006-01-20 13:32:31 +00:00
Florian Pose b0443360ec Vereinheitlichte Schnittstellen, Include-Verzeichnis und Module getrennt. 2006-01-17 18:28:15 +00:00