tms_s_co.c

来自「澳洲人写的Cortex,包括uC_IP协议栈」· C语言 代码 · 共 171 行

C
171
字号
<HTML><HEAD><TITLE>/home/asysweb/public_html/cortex/exports/tms320c3/src/tms_s_co.c</TITLE></HEAD><BODY><pre><font color="#6920ac">/*************************************************************************/</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/*     Copyright (c) 1997-1999 Australian Real Time Embedded Systems     */</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/* PROPRIETARY RIGHTS of Australian Real Time Embedded Systems           */</font><font color="#6920ac">/* are involved in the subject matter of this material. All reproduction,*/</font><font color="#6920ac">/* manufacturing, use, and sales rights pertaining to this subject matter*/</font><font color="#6920ac">/* are governed by the license agreement. The recipient of this software */</font><font color="#6920ac">/* implicitly accepts the terms of the license.                          */</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/*************************************************************************/</font><b><font color='DarkGreen'>#include</font></b> <a href="sdr_defs.h.FIND-INC"><font color="blue">"sdr_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="tms_s_de.h.FIND-INC"><font color="blue">"tms_s_de.h"</font></a><font size="+1"><i>static</i> <i>crtx_Int_t</i>   <a href="TMSSSndByte.FIND-FUNC">TMSSSndByte</a>( <i>crtx_Void_t</i> *pContext_a, <i>crtx_Char_t</i> Byte_a);</font><font size="+1"><i>static</i> <i>crtx_Int_t</i>   <a href="TMSSRcvByte.FIND-FUNC">TMSSRcvByte</a>( <i>crtx_Void_t</i> *pContext_a);</font><font size="+1"><i>static</i> <i>crtx_Int_t</i>   <a href="TMSSIoctl.FIND-FUNC">TMSSIoctl</a>(<i>crtx_Void_t</i> *pContext_a,                              <i>crtx_Int_t</i> Command_a, <i>crtx_Void_t</i> *pAttr_a);</font><font size="+1"><i>static</i> <i>crtx_Void_t</i> <a href="TMSSSndEnable.FIND-FUNC">TMSSSndEnable</a>(<i>crtx_Void_t</i> *pContext_a,                                 <i>crtx_Int_t</i> Enable_a);</font><font size="+1"><i>static</i> <i>crtx_Void_t</i> <a href="TMSSRcvEnable.FIND-FUNC">TMSSRcvEnable</a>(<i>crtx_Void_t</i> *pContext_a,                                 <i>crtx_Int_t</i> Enable_a);</font><font size="+1"><i>sdrv_Desc_t</i> *<b><font color="azure1"><a name="TMSS_Create">TMSS_Create</a></font></b>(<i>TMSS_Desc_t</i> *pDesc_a __attribute__((unused)),                         <i>sdrv_Desc_t</i> *pDrvDesc_a __attribute__((unused))){</font><font color="#6920ac">#if 0    crtx_Uint_t divisor;    /* check initial parameters */    if ( pDesc_a-&gt;PortAddr == SDRV_NULL)    {        SDRV_EXCEPTION ErrWrongArg_Exc;    }    pDesc_a-&gt;PortAddr[TMSS_REG_IER] = TMSS_IER_ALL_DIS;    pDesc_a-&gt;PortAddr[TMSS_REG_FCR] = TMSS_FCR_FIFO8;    pDesc_a-&gt;PortAddr[TMSS_REG_MCR] = TMSS_MCR_RTS_LOW | TMSS_MCR_OUT2_LOW;    pDesc_a-&gt;PortAddr[3] &amp;= ~TMSS_BIT_DIVIS_LATCH;    if ( !( (pDesc_a-&gt;Baud == TMSS_BAUD_50) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_75) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_110) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_134P5) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_150) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_300) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_600) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_1200) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_1800) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_2000) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_2400) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_3600) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_4800) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_7200) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_9600) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_19200) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_38400) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_56000) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_128000) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_256000) ||            (pDesc_a-&gt;Baud == TMSS_BAUD_512000) ) )    {        SDRV_EXCEPTION ErrWrongArg_Exc;    }    if ( !( (pDesc_a-&gt;Bits == TMSS_BIT_5) ||            (pDesc_a-&gt;Bits == TMSS_BIT_6) ||            (pDesc_a-&gt;Bits == TMSS_BIT_7) ||            (pDesc_a-&gt;Bits == TMSS_BIT_8) ))    {        SDRV_EXCEPTION ErrWrongArg_Exc;    }    if ( !( (pDesc_a-&gt;Stop == TMSS_STOPBIT_1) ||            (pDesc_a-&gt;Stop == TMSS_STOPBIT_2) ) )    {        SDRV_EXCEPTION ErrWrongArg_Exc;    }    /* set baud rate */    divisor = ((pDesc_a-&gt;CPUFrequency * 10 + pDesc_a-&gt;Baud * 8) /               (pDesc_a-&gt;Baud * 16));    pDesc_a-&gt;PortAddr[TMSS_REG_LCR] |= TMSS_BIT_DIVIS_LATCH;    pDesc_a-&gt;PortAddr[TMSS_REG_DLL] = divisor &amp; 0xff;    pDesc_a-&gt;PortAddr[TMSS_REG_DLM] = (divisor &gt;&gt; 8) &amp; 0xff;    pDesc_a-&gt;PortAddr[TMSS_REG_LCR] &amp;= (~TMSS_BIT_DIVIS_LATCH);    /* set number of bits */    pDesc_a-&gt;PortAddr[TMSS_REG_LCR] =        (pDesc_a-&gt;PortAddr[TMSS_REG_LCR] &amp; ~(            (TMSS_BIT_MASK &lt;&lt; TMSS_BIT_SHIFT) |            (TMSS_STOPBIT_MASK &lt;&lt; TMSS_STOPBIT_SHIFT))) |        (pDesc_a-&gt;Bits &lt;&lt; TMSS_BIT_SHIFT) |        (pDesc_a-&gt;Stop &lt;&lt; TMSS_STOPBIT_SHIFT);    /* disable FIFO */    pDesc_a-&gt;PortAddr[TMSS_REG_FCR] = TMSS_FCR_FIFO_OFF;    /* disable all interrupts */    pDesc_a-&gt;PortAddr[TMSS_REG_IER] &amp;=        ~(TMSS_IER_ALL_EN);    TMSSContext = *pDesc_a;    pDrvDesc_a-&gt;pContext = (void *)&amp;TMSSContext;    pDrvDesc_a-&gt;InterIn = pDesc_a-&gt;InterNum;    pDrvDesc_a-&gt;InterOut = pDesc_a-&gt;InterNum;    pDrvDesc_a-&gt;Flags = SDRV_FLAG_ECHO;#endif</font>    pDrvDesc_a-&gt;SndByte = TMSSSndByte;    pDrvDesc_a-&gt;SndEnable = TMSSSndEnable;    pDrvDesc_a-&gt;RcvByte = TMSSRcvByte;    pDrvDesc_a-&gt;RcvEnable = TMSSRcvEnable;    pDrvDesc_a-&gt;Ioctl = TMSSIoctl;    <b>return</b>( pDrvDesc_a );<font color="#6920ac">#if 0ErrWrongArg_Exc:    return( CRTX_NULL );#endif</font>}<font size="+1"><i>static</i> <i>crtx_Void_t</i> <b><font color="azure1"><a name="TMSSSndEnable">TMSSSndEnable</a></font></b>(    <i>crtx_Void_t</i> *pContext_a __attribute__((unused)),    <i>crtx_Int_t</i> Enable_a __attribute__((unused))){</font>    <b>return</b>;}<font size="+1"><i>static</i> <i>crtx_Void_t</i> <b><font color="azure1"><a name="TMSSRcvEnable">TMSSRcvEnable</a></font></b>(    <i>crtx_Void_t</i> *pContext_a __attribute__((unused)),    <i>crtx_Int_t</i> Enable_a __attribute__((unused))){</font>    <b>return</b>;}<font size="+1"><i>static</i> <i>crtx_Int_t</i> <b><font color="azure1"><a name="TMSSSndByte">TMSSSndByte</a></font></b>(    <i>crtx_Void_t</i> *pContext_a __attribute__((unused)),    <i>crtx_Char_t</i> Byte_a __attribute__((unused))){</font>    <b>return</b>(0);}<font size="+1"><i>static</i> <i>crtx_Int_t</i> <b><font color="azure1"><a name="TMSSRcvByte">TMSSRcvByte</a></font></b>( <i>crtx_Void_t</i> *pContext_a __attribute__((unused))){</font>    <b>return</b>(0);}<font size="+1"><i>static</i> <i>crtx_Int_t</i> <b><font color="azure1"><a name="TMSSIoctl">TMSSIoctl</a></font></b>(<i>crtx_Void_t</i> *pContext_a __attribute__((unused)),                            <i>crtx_Int_t</i> Command_a __attribute__((unused)),                            <i>crtx_Void_t</i> *pAttr_a __attribute__((unused))){</font>    <b>return</b>(0);}</pre></BODY></HTML>

⌨️ 快捷键说明

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