mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-02-08 04:41:44 +08:00
81758004fd4c243ac044ebbb9121ddeaed69f0f9
Introduce a new lock for synchronization of the master->domains list, and use that instead of the big master_sem lock, improving real-time performance of fx. ecrt_domain_process() when EoE thread is being shut down (or other use-cases where master_sem is held for extended periods). The following locking order is used: * master->master_sem * master->domains_lock * master->io_sem * domain->datagram_pairs_lock Meaning that it is allowed to take domains_lock while holding master_sem, and it is allowed to hold domains_lock while locking io_sem and datagram_pairs_lock. [RV: For now, the lockdep_assert_held() annotations are commented out, since they don't compile with CONFIG_PROVE_LOCKING and (the default) --disable-rtmutex.]
…
…
…
…
…
------------------------------------------------------------------------------ This is the README file of the IgH EtherCAT Master. $Id$ vim: spelllang=en spell tw=78 ------------------------------------------------------------------------------ Contents: 1) General Information 2) Requirements 3) Building and installing 4) Realtime & Tuning 5) License 6) Coding Style ------------------------------------------------------------------------------ 1) General Information ====================== This is an open-source EtherCAT master implementation for Linux 2.6. See the FEATURES file for a list of features. For more information, see http://etherlab.org/en/ethercat. or contact Dipl.-Ing. (FH) Florian Pose <fp@igh-essen.com> Ingenieurgemeinschaft IgH Heinz-Baecker-Str. 34 D-45356 Essen http://igh-essen.com ------------------------------------------------------------------------------ 2) Requirements =============== 1) Software requirements Configured sources for the Linux 2.6 kernel are required to build the EtherCAT master. 2) Hardware requirements A table of supported hardware can be found at http://etherlab.org/en/ethercat/hardware.php. ------------------------------------------------------------------------------ 3) Building and installing ========================== See the INSTALL file. ------------------------------------------------------------------------------ 4) Realtime & Tuning ==================== Realtime patches for the Linux kernel are supported, but not required. The realtime processing has to be done by the calling module (see API documentation). The EtherCAT master code itself is passive (except for the idle mode and EoE). To avoid frame timeouts, deactivating DMA access for hard drives is recommended (hdparm -d0 <DEV>). ------------------------------------------------------------------------------ 5) License ========== Copyright (C) 2006-2009 Florian Pose, Ingenieurgemeinschaft IgH This file is part of the IgH EtherCAT Master. The IgH EtherCAT Master is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation. The IgH EtherCAT Master is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 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 --- The license mentioned above concerns the source code only. Using the EtherCAT technology and brand is only permitted in compliance with the industrial property and similar rights of Beckhoff Automation GmbH. ------------------------------------------------------------------------------ 6) Coding Style =============== Developers shall use the coding style rules in the CodingStyle.txt file. ------------------------------------------------------------------------------
Languages
C
99.3%
C++
0.5%