Updated header docs, features and news file.
--- 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.
--- 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.
-------------------------------------------------------------------------------
--- 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.