⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devapi-synchronization.html

📁 有关ecos2。0介绍了实时嵌入式的结构以及线程调度的实现和内存的管理等
💻 HTML
字号:
<!-- Copyright (C) 2003 Red Hat, Inc.                                --><!-- This material may be distributed only subject to the terms      --><!-- and conditions set forth in the Open Publication License, v1.0  --><!-- or later (the latest version is presently available at          --><!-- http://www.opencontent.org/openpub/).                           --><!-- Distribution of the work or derivative of the work in any       --><!-- standard (paper) book form is prohibited unless prior           --><!-- permission is obtained from the copyright holder.               --><HTML><HEAD><TITLE>Synchronization</TITLE><meta name="MSSmartTagsPreventParsing" content="TRUE"><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="eCos Reference Manual"HREF="ecos-ref.html"><LINKREL="UP"TITLE="Device Driver Interface to the Kernel"HREF="devapi-device-driver-interface-to-the-kernel.html"><LINKREL="PREVIOUS"TITLE="Device Driver Interface to the Kernel"HREF="devapi-device-driver-interface-to-the-kernel.html"><LINKREL="NEXT"TITLE="SMP Support"HREF="devapi-smp-support.html"></HEAD><BODYCLASS="SECTION"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">eCos Reference Manual</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="devapi-device-driver-interface-to-the-kernel.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">Chapter 18. Device Driver Interface to the Kernel</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="devapi-smp-support.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECTION"><H1CLASS="SECTION"><ANAME="DEVAPI-SYNCHRONIZATION">Synchronization</H1><P>There are three levels of synchronization supported:</P><P></P><OLTYPE="1"><LI><P>    Synchronization with ISRs. This normally means disabling    interrupts to prevent the ISR running during a critical    section. In an SMP environment, this will also require the use of    a spinlock to synchronize with ISRs, DSRs or threads running on    other CPUs.  This is implemented by the    <TTCLASS="FUNCTION">cyg_drv_isr_lock()</TT> and    <TTCLASS="FUNCTION">cyg_drv_isr_unlock()</TT> functions. This    mechanism should be used sparingly and for short periods only.    For finer grained synchronization, individual spinlocks are also    supplied.    </P></LI><LI><P>    Synchronization with DSRs. This will be implemented in the kernel    by taking the scheduler lock to prevent DSRs running during    critical sections. In non-kernel configurations it will be    implemented by non-kernel code. This is implemented by the    <TTCLASS="FUNCTION">cyg_drv_dsr_lock()</TT> and    <TTCLASS="FUNCTION">cyg_drv_dsr_unlock()</TT> functions. As with ISR    synchronization, this mechanism should be used sparingly. Only    DSRs and threads may use this synchronization mechanism, ISRs are    not allowed to do this.    </P></LI><LI><P>    Synchronization with threads. This is implemented with mutexes    and condition variables. Only threads may lock the mutexes and    wait on the condition variables, although DSRs may signal    condition variables.    </P></LI></OL><P>Any data that is accessed from more than one level must be protectedagainst concurrent access. Data that is accessed by ISRs must beprotected with the ISR lock, or a spinlock at all times,<SPANCLASS="emphasis"><ICLASS="EMPHASIS">even in ISRs</I></SPAN>. Data that is shared between DSRsand threads should be protected with the DSR lock. Data that is onlyaccessed by threads must be protected with mutexes.</P></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="devapi-device-driver-interface-to-the-kernel.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ecos-ref.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="devapi-smp-support.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Device Driver Interface to the Kernel</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="devapi-device-driver-interface-to-the-kernel.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">SMP Support</TD></TR></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -