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->PortAddr == SDRV_NULL) { SDRV_EXCEPTION ErrWrongArg_Exc; } pDesc_a->PortAddr[TMSS_REG_IER] = TMSS_IER_ALL_DIS; pDesc_a->PortAddr[TMSS_REG_FCR] = TMSS_FCR_FIFO8; pDesc_a->PortAddr[TMSS_REG_MCR] = TMSS_MCR_RTS_LOW | TMSS_MCR_OUT2_LOW; pDesc_a->PortAddr[3] &= ~TMSS_BIT_DIVIS_LATCH; if ( !( (pDesc_a->Baud == TMSS_BAUD_50) || (pDesc_a->Baud == TMSS_BAUD_75) || (pDesc_a->Baud == TMSS_BAUD_110) || (pDesc_a->Baud == TMSS_BAUD_134P5) || (pDesc_a->Baud == TMSS_BAUD_150) || (pDesc_a->Baud == TMSS_BAUD_300) || (pDesc_a->Baud == TMSS_BAUD_600) || (pDesc_a->Baud == TMSS_BAUD_1200) || (pDesc_a->Baud == TMSS_BAUD_1800) || (pDesc_a->Baud == TMSS_BAUD_2000) || (pDesc_a->Baud == TMSS_BAUD_2400) || (pDesc_a->Baud == TMSS_BAUD_3600) || (pDesc_a->Baud == TMSS_BAUD_4800) || (pDesc_a->Baud == TMSS_BAUD_7200) || (pDesc_a->Baud == TMSS_BAUD_9600) || (pDesc_a->Baud == TMSS_BAUD_19200) || (pDesc_a->Baud == TMSS_BAUD_38400) || (pDesc_a->Baud == TMSS_BAUD_56000) || (pDesc_a->Baud == TMSS_BAUD_128000) || (pDesc_a->Baud == TMSS_BAUD_256000) || (pDesc_a->Baud == TMSS_BAUD_512000) ) ) { SDRV_EXCEPTION ErrWrongArg_Exc; } if ( !( (pDesc_a->Bits == TMSS_BIT_5) || (pDesc_a->Bits == TMSS_BIT_6) || (pDesc_a->Bits == TMSS_BIT_7) || (pDesc_a->Bits == TMSS_BIT_8) )) { SDRV_EXCEPTION ErrWrongArg_Exc; } if ( !( (pDesc_a->Stop == TMSS_STOPBIT_1) || (pDesc_a->Stop == TMSS_STOPBIT_2) ) ) { SDRV_EXCEPTION ErrWrongArg_Exc; } /* set baud rate */ divisor = ((pDesc_a->CPUFrequency * 10 + pDesc_a->Baud * 8) / (pDesc_a->Baud * 16)); pDesc_a->PortAddr[TMSS_REG_LCR] |= TMSS_BIT_DIVIS_LATCH; pDesc_a->PortAddr[TMSS_REG_DLL] = divisor & 0xff; pDesc_a->PortAddr[TMSS_REG_DLM] = (divisor >> 8) & 0xff; pDesc_a->PortAddr[TMSS_REG_LCR] &= (~TMSS_BIT_DIVIS_LATCH); /* set number of bits */ pDesc_a->PortAddr[TMSS_REG_LCR] = (pDesc_a->PortAddr[TMSS_REG_LCR] & ~( (TMSS_BIT_MASK << TMSS_BIT_SHIFT) | (TMSS_STOPBIT_MASK << TMSS_STOPBIT_SHIFT))) | (pDesc_a->Bits << TMSS_BIT_SHIFT) | (pDesc_a->Stop << TMSS_STOPBIT_SHIFT); /* disable FIFO */ pDesc_a->PortAddr[TMSS_REG_FCR] = TMSS_FCR_FIFO_OFF; /* disable all interrupts */ pDesc_a->PortAddr[TMSS_REG_IER] &= ~(TMSS_IER_ALL_EN); TMSSContext = *pDesc_a; pDrvDesc_a->pContext = (void *)&TMSSContext; pDrvDesc_a->InterIn = pDesc_a->InterNum; pDrvDesc_a->InterOut = pDesc_a->InterNum; pDrvDesc_a->Flags = SDRV_FLAG_ECHO;#endif</font> pDrvDesc_a->SndByte = TMSSSndByte; pDrvDesc_a->SndEnable = TMSSSndEnable; pDrvDesc_a->RcvByte = TMSSRcvByte; pDrvDesc_a->RcvEnable = TMSSRcvEnable; pDrvDesc_a->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 + -
显示快捷键?