# HG changeset patch # User Florian Pose # Date 1215008910 0 # Node ID 1322dc34cb37411db0c125b55125294a2d9e9435 # Parent ff06c58e269cdaa9f43d4aa42fbd4d9601d264d3 Updated header docs, features and news file. diff -r ff06c58e269c -r 1322dc34cb37 FEATURES --- a/FEATURES Wed Jul 02 14:06:10 2008 +0000 +++ b/FEATURES Wed Jul 02 14:28:30 2008 +0000 @@ -10,8 +10,8 @@ * Runs as kernel module for Linux 2.6. -* Comes with EtherCAT-capable network driver for RTL8139 and compatible - network interface cards. +* Comes with EtherCAT-capable network driver for serveral network interface + cards. - Interrupt-less network driver operation. - Easy implementation of additional network drivers through common device interface of the master. @@ -32,19 +32,20 @@ - Automatic calculation of process data mapping, FMMU- and sync manager configuration within the domains. -* Master finite state machine (FSM). Thus: +* Master finite state machine (FSM). - Bus monitoring during realtime operation. - Automatic reconfiguration of slaves on bus power failure during realtime operation. - - Controlling of slave states during realtime operation. + - Setting slave states during realtime operation. * Special IDLE mode, when master is not in use. - Automatic scanning of slaves upon topology changes. - Bus visualisation and EoE processing without realtime process connected. * Implementation of the CANopen-over-EtherCAT (CoE) protocol. - - Configuration of CoE-capable slaves via SDO interface. - - SDO dictionary listing. + - Configuration of CoE-capable slaves via Sdo interface. + - Sdo information service (dictionary listing). + - Sdo access via the realtime interface. * Implementation of the Ethernet-over-EtherCAT (EoE) protocol. - Creates virtual network devices that are automatically coupled to @@ -52,10 +53,9 @@ - Thus natively supports either a switched or a routed EoE network architecture with standard GNU/Linux tools. -* User space interface via the system filesystem (Sysfs). - - Detailed information about master and slaves in a tree structure. - - User space tool 'lsec' for quick bus visualisation. - - Slave EEPROM image reading and writing. +* User space interface via a command-line tool 'ethercat'. + - Detailed information about master, slaves and the bus configuration. + - Slave SII reading and writing. * Seamless integration in your favourite GNU/Linux distibution. - Master and network device configuration via sysconfig files. diff -r ff06c58e269c -r 1322dc34cb37 NEWS --- a/NEWS Wed Jul 02 14:06:10 2008 +0000 +++ b/NEWS Wed Jul 02 14:28:30 2008 +0000 @@ -7,8 +7,8 @@ Changes in version 1.4.0: * Realtime interface changes: - - Replaced ec_slave_t with ec_slave_config_t, separating the slave objects - from the requested bus configuration. Therefore, renamed + - Replaced ec_slave_t with ec_slave_config_t, separating the bus + configuration from the actual slaves. Therefore, renamed ecrt_master_get_slave() to ecrt_master_slave_config(). - Replaced slave address string with alias and position values. See ecrt_master_slave_config(). @@ -20,18 +20,19 @@ offers the possibility to use a shared-memory region. Therefore, added the domain methods ecrt_domain_size() and ecrt_domain_external_memory(). - - Replaced the process data pointers in the Pdo entry registration - functions with a process data offset, that is now returned by - ecrt_slave_config_reg_pdo_entry(). This was necessary for the external - domain memory. An additional advantage is, that the returned offset value - is directly usable. If the domain's process data is allocated internally, + - Pdo entry registration functions do not return a process data pointer, + but an offset in the domain's process data. In addition, an optional bit + position can be requested. This was necessary for the external domain + memory. An additional advantage is, that the returned offset is + immediately valid. If the domain's process data is allocated internally, the start address can be retrieved with ecrt_domain_data(). - Replaced ecrt_slave_pdo_mapping/add/clear() with - ecrt_slave_config_pdo() to add a Pdo to the mapping and - ecrt_slave_config_pdo_entry() to add a Pdo entry to a Pdo configuration. - ecrt_slave_config_mapping() is a convenience function for - both, that uses the new data types ec_pdo_info_t and ec_pdo_entry_info_t. - Mapped Pdo entries can now immediately be registered. + ecrt_slave_config_pdo_assign_add() to add a Pdo to a sync manager's Pdo + assignment and ecrt_slave_config_pdo_mapping_add() to add a Pdo entry to a + Pdo's mapping. ecrt_slave_config_pdos() is a convenience function + for both, that uses the new data types ec_pdo_info_t and + ec_pdo_entry_info_t. Pdo entries, that are mapped with these functions + can now immediately be registered, even if the bus is offline. - Renamed ec_bus_status_t, ec_master_status_t to ec_bus_state_t and ec_master_state_t, respectively. Renamed ecrt_master_get_status() to ecrt_master_state(), for consistency reasons. @@ -42,17 +43,31 @@ renamed ec_pdo_reg_t to ec_pdo_entry_reg_t and ecrt_domain_register_pdo() to ecrt_slave_config_reg_pdo_entry(). - Removed ecrt_domain_register_pdo_range(), because it's functionality can - be reached by specifying an explicit Pdo mapping and registering those - Pdo entries. + be reached by specifying an explicit Pdo assignment/mapping and + registering the mapped Pdo entries. - Added an Sdo access interface, working with Sdo requests. These can be scheduled for reading and writing during realtime operation. - - Exported ecrt_slave_config_sdo(), the generic Sdo configuration - function. + - Exported ecrt_slave_config_sdo(), the generic Sdo configuration function. - Removed the bus_state and bus_tainted flags from ec_master_state_t. * Device interface changes: - Moved device output parameter of ecdev_offer() to return value. -* Replaces the Sysfs interface with a new 'ethercat' command-line tool. See - 'ethercat --help'. +* Replaced the Sysfs interface with a new 'ethercat' command-line tool. See + 'ethercat --help'. The tool is able to + - Write alias addresses. + - Show the bus configuration. + - Output binary domain process data. + - Set the master's debug level. + - Show domain information. + - Show master information. + - List Pdo assignment/mapping. + - Write an Sdo entry. + - List Sdo dictionaries. + - Read an Sdo entry. + - Output a slave's SII contents. + - Write slave's SII contents. + - Show slaves. + - Request slave states. + - Generate slave information xmls. * Removed include/ecdb.h. * Sdo dictionaries will now also be fetched in operation mode. * SII write requests will now also be processed in operation mode. @@ -85,9 +100,8 @@ 'Flags' from general category in slave info file. * Added MODPROBE_FLAGS variable in start script and sysconfig file. * Implemented missing datagram types. +* Changed all occurrences of 'EEPROM' to 'SII' * Allow multiple sync manager categories in SII. -* Changed all occurrences of 'EEPROM' to 'SII', renamed the eeprom sysfs file - to sii, in particular. ------------------------------------------------------------------------------- diff -r ff06c58e269c -r 1322dc34cb37 include/ecrt.h --- a/include/ecrt.h Wed Jul 02 14:06:10 2008 +0000 +++ b/include/ecrt.h Wed Jul 02 14:28:30 2008 +0000 @@ -44,8 +44,8 @@ * * Changes in Version 1.4: * - * - Replaced ec_slave_t with ec_slave_config_t, separating the slave objects - * from the requested bus configuration. Therefore, renamed + * - Replaced ec_slave_t with ec_slave_config_t, separating the bus + * configuration from the actual slaves. Therefore, renamed * ecrt_master_get_slave() to ecrt_master_slave_config(). * - Replaced slave address string with alias and position values. See * ecrt_master_slave_config(). @@ -73,7 +73,7 @@ * - Renamed ec_bus_status_t, ec_master_status_t to ec_bus_state_t and * ec_master_state_t, respectively. Renamed ecrt_master_get_status() to * ecrt_master_state(), for consistency reasons. - * - Added ec_domain_state_t and ec_wc_state_t for a new output parameter + * - Added ec_domain_state_t and #ec_wc_state_t for a new output parameter * of ecrt_domain_state(). The domain state object does now contain * information, if the process data was exchanged completely. * - Former "Pdo registration" meant Pdo entry registration in fact, therefore @@ -272,7 +272,9 @@ * ecrt_slave_config_pdos(). */ typedef struct { - uint8_t index; /**< Sync manager index. */ + uint8_t index; /**< Sync manager index. Must be less + than #EC_MAX_SYNC_MANAGERS for a valid sync manager, + but can also be \a 0xff to mark the end of the list. */ ec_direction_t dir; /**< Sync manager direction. */ unsigned int n_pdos; /**< Number of Pdos in \a pdos. */ ec_pdo_info_t *pdos; /**< Array with Pdos to assign. This must contain @@ -458,7 +460,7 @@ */ int ecrt_slave_config_sync_manager( ec_slave_config_t *sc, /**< Slave configuration. */ - uint8_t sync_index, /**< Sync manager index. Must ba less + uint8_t sync_index, /**< Sync manager index. Must be less than #EC_MAX_SYNC_MANAGERS. */ ec_direction_t dir /**< Input/Output. */ ); @@ -470,7 +472,8 @@ */ int ecrt_slave_config_pdo_assign_add( ec_slave_config_t *sc, /**< Slave configuration. */ - uint8_t sync_index, /**< Sync manager index. */ + uint8_t sync_index, /**< Sync manager index. Must be less + than #EC_MAX_SYNC_MANAGERS. */ uint16_t index /**< Index of the Pdo to assign. */ ); @@ -484,7 +487,8 @@ */ void ecrt_slave_config_pdo_assign_clear( ec_slave_config_t *sc, /**< Slave configuration. */ - uint8_t sync_index /**< Sync manager index. */ + uint8_t sync_index /**< Sync manager index. Must be less + than #EC_MAX_SYNC_MANAGERS. */ ); /** Add a Pdo entry to the given Pdo's mapping.