usb_regs.c
上传用户:yyyd609
上传日期:2022-07-18
资源大小:183k
文件大小:11k
源码类别:

微处理器开发

开发平台:

C/C++

  1. /******************** (C) COPYRIGHT 2003 STMicroelectronics ********************
  2. * File Name          : usb_regs.c
  3. * Author             : MCD Application Team
  4. * Date First Issued  : 27/10/2003
  5. * Description        : Interface functions to USB cell registers
  6. *
  7. ********************************************************************************/
  8. #include "USB_lib.h"
  9. /*----------------------------------------------------------------*/
  10. /* Local declarations   */
  11. /*----------------------------------------------------------------*/
  12. /*----------------------------------------------------------------*/
  13. void SetCNTR(WORD wRegValue )
  14. {
  15. _SetCNTR(wRegValue);
  16. } /* SetCNTR */
  17. /*----------------------------------------------------------------*/
  18. WORD GetCNTR(void)
  19. {
  20. return(_GetCNTR());
  21. } /* GetCNTR */
  22. /*----------------------------------------------------------------*/
  23. void SetISTR(WORD wRegValue )
  24. {
  25. _SetISTR(wRegValue);
  26. } /* SetISTR */
  27. /*----------------------------------------------------------------*/
  28. WORD GetISTR(void)
  29. {
  30. return(_GetISTR());
  31. } /* GetISTR */
  32. /*----------------------------------------------------------------*/
  33. WORD GetFNR(void)
  34. {
  35. return(_GetFNR());
  36. } /* GetFNR */
  37. /*----------------------------------------------------------------*/
  38. void SetDADDR(WORD wRegValue )
  39. {
  40. _SetDADDR(wRegValue);
  41. } /* SetDADDR */
  42. /*----------------------------------------------------------------*/
  43. WORD GetDADDR(void)
  44. {
  45. return(_GetDADDR());
  46. } /* GetDADDR */
  47. /*----------------------------------------------------------------*/
  48. void SetBTABLE(WORD wRegValue )
  49. {
  50. _SetBTABLE(wRegValue);
  51. } /* SetBTABLE */
  52. /*----------------------------------------------------------------*/
  53. WORD GetBTABLE(void)
  54. {
  55. return(_GetBTABLE());
  56. } /* GetBTABLE */
  57. /*----------------------------------------------------------------*/
  58. void SetENDPOINT(BYTE bEpNum, WORD wRegValue )
  59. {
  60. _SetENDPOINT(bEpNum,wRegValue);
  61. } /* SetENDPOINT */
  62. /*----------------------------------------------------------------*/
  63. WORD GetENDPOINT(BYTE bEpNum)
  64. {
  65. return(_GetENDPOINT(bEpNum));
  66. } /* GetENDPOINT */
  67. /*----------------------------------------------------------------*/
  68. void SetEPType(BYTE bEpNum, WORD wType)
  69. {
  70. _SetEPType(bEpNum, wType);
  71. } /* SetEPType */
  72. /*----------------------------------------------------------------*/
  73. WORD GetEPType(BYTE bEpNum)
  74. {
  75. return(_GetEPType(bEpNum));
  76. }/*GetEPType */
  77. /*----------------------------------------------------------------*/
  78. void SetEPTxStatus(BYTE bEpNum, WORD wState)
  79. {
  80. _SetEPTxStatus(bEpNum,wState);
  81. } /* SetEPTxStatus */
  82. /*----------------------------------------------------------------*/
  83. void SetEPRxStatus(BYTE bEpNum, WORD wState)
  84. {
  85. _SetEPRxStatus(bEpNum,wState);
  86. } /* SetEPRxStatus */
  87. /*----------------------------------------------------------------*/
  88. WORD GetEPTxStatus(BYTE bEpNum)
  89. {
  90. return(_GetEPTxStatus(bEpNum));
  91. }/*GetEPTxStatus */
  92. /*----------------------------------------------------------------*/
  93. WORD GetEPRxStatus(BYTE bEpNum)
  94. {
  95. return(_GetEPRxStatus(bEpNum));
  96. }/*GetEPRxStatus */
  97. /*----------------------------------------------------------------*/
  98. void SetEPTxValid(BYTE bEpNum)
  99. {
  100.   _SetEPTxStatus(bEpNum, EP_TX_VALID);
  101. } /* SetEPTxValid */
  102. /*----------------------------------------------------------------*/
  103. void SetEPRxValid(BYTE bEpNum)
  104. {
  105.   _SetEPRxStatus(bEpNum, EP_RX_VALID);
  106. } /* SetEPRxValid */
  107. /*----------------------------------------------------------------*/
  108. void SetEP_KIND(BYTE bEpNum)
  109. {
  110. _SetEP_KIND(bEpNum);
  111. }/*SetEP_KIND */
  112. /*----------------------------------------------------------------*/
  113. void ClearEP_KIND(BYTE bEpNum)
  114. {
  115. _ClearEP_KIND(bEpNum);
  116. }/*ClearEP_KIND */
  117. /*----------------------------------------------------------------*/
  118. void Clear_Status_Out(BYTE bEpNum){
  119.  _ClearEP_KIND(bEpNum);
  120. } /* Clear_Status_Out */
  121. /*----------------------------------------------------------------*/
  122. void Set_Status_Out(BYTE bEpNum)
  123. {
  124. _SetEP_KIND(bEpNum);
  125. } /* Set_Status_Out */
  126. /*----------------------------------------------------------------*/
  127. void SetEPDoubleBuff(BYTE bEpNum)
  128. {
  129.  _SetEP_KIND(bEpNum);
  130. } /* SetEPDoubleBuff */
  131. /*----------------------------------------------------------------*/
  132. void ClearEPDoubleBuff(BYTE bEpNum)
  133. {
  134.  _ClearEP_KIND(bEpNum);
  135. } /* ClearEPDoubleBuff */
  136. /*----------------------------------------------------------------*/
  137. BOOL GetTxStallStatus(BYTE bEpNum)
  138. {
  139. return(_GetTxStallStatus(bEpNum));
  140. }/*GetTxStallStatus */
  141. /*----------------------------------------------------------------*/
  142. BOOL GetRxStallStatus(BYTE bEpNum)
  143. {
  144. return(_GetRxStallStatus(bEpNum));
  145. }/*GetRxStallStatus */
  146. /*----------------------------------------------------------------*/
  147. void ClearEP_CTR_RX(BYTE bEpNum)
  148. {
  149. _ClearEP_CTR_RX(bEpNum);
  150. } /* ClearEP_CTR_RX */
  151. /*----------------------------------------------------------------*/
  152. void ClearEP_CTR_TX(BYTE bEpNum)
  153. {
  154. _ClearEP_CTR_TX(bEpNum);
  155. } /* ClearEP_CTR_TX */
  156. /*----------------------------------------------------------------*/
  157. void ToggleDTOG_RX(BYTE bEpNum)
  158. {
  159. _ToggleDTOG_RX(bEpNum);
  160. }/*ToggleDTOG_RX */
  161. /*----------------------------------------------------------------*/
  162. void ToggleDTOG_TX(BYTE bEpNum)
  163. {
  164. _ToggleDTOG_TX(bEpNum);
  165. }/*ToggleDTOG_TX */
  166. /*----------------------------------------------------------------*/
  167. void ClearDTOG_RX(BYTE bEpNum)
  168. {
  169. _ClearDTOG_RX(bEpNum);
  170. }/*ClearDTOG_RX */
  171. /*----------------------------------------------------------------*/
  172. void ClearDTOG_TX(BYTE bEpNum)
  173. {
  174. _ClearDTOG_TX(bEpNum);
  175. }/*ClearDTOG_TX */
  176. /*----------------------------------------------------------------*/
  177. void SetEPAddress(BYTE bEpNum,BYTE bAddr)
  178. {
  179. _SetEPAddress(bEpNum,bAddr);
  180. }/*SetEPAddress */
  181. /*----------------------------------------------------------------*/
  182. BYTE GetEPAddress(BYTE bEpNum)
  183. {
  184. return(_GetEPAddress(bEpNum));
  185. }/*GetEPAddress */
  186. /*----------------------------------------------------------------*/
  187. void SetEPTxAddr(BYTE bEpNum, WORD wAddr)
  188. {
  189. _SetEPTxAddr(bEpNum,wAddr);
  190. } /* SetEPTxAddr */
  191. /*----------------------------------------------------------------*/
  192. void SetEPRxAddr(BYTE bEpNum, WORD wAddr)
  193. {
  194.  _SetEPRxAddr(bEpNum,wAddr);
  195. } /* SetEPRxAddr */
  196. /*----------------------------------------------------------------*/
  197. WORD GetEPTxAddr(BYTE bEpNum)
  198. {
  199.  return(_GetEPTxAddr(bEpNum));
  200. } /* GetEPTxAddr */
  201. /*----------------------------------------------------------------*/
  202. WORD GetEPRxAddr(BYTE bEpNum)
  203. {
  204.  return(_GetEPRxAddr(bEpNum));
  205. } /* GetEPRxAddr */
  206. /*----------------------------------------------------------------*/
  207. void SetEPTxCount(BYTE bEpNum, WORD wCount)
  208. {
  209. _SetEPTxCount(bEpNum,wCount);
  210. } /* SetEPTxCount */
  211. /*----------------------------------------------------------------*/
  212. void SetEPCountRxReg(DWORD *pdwReg, WORD wCount)
  213. {
  214. _SetEPCountRxReg(dwReg, wCount);
  215. } /* SetEPCountRxReg */
  216. /*----------------------------------------------------------------*/
  217. void SetEPRxCount(BYTE bEpNum, WORD wCount)
  218. {
  219. _SetEPRxCount(bEpNum,wCount);
  220. } /* SetEPRxCount */
  221. /*----------------------------------------------------------------*/
  222. WORD GetEPTxCount(BYTE bEpNum)
  223. {
  224.  return(_GetEPTxCount(bEpNum));
  225. } /* GetEPTxCount */
  226. /*----------------------------------------------------------------*/
  227. WORD GetEPRxCount(BYTE bEpNum)
  228. {
  229.  return(_GetEPRxCount(bEpNum));
  230. } /* GetEPRxCount */
  231. /*----------------------------------------------------------------*/
  232. void SetEPDblBuffAddr(BYTE bEpNum, WORD wBuf0Addr, WORD wBuf1Addr)
  233. {
  234. _SetEPDblBuffAddr(bEpNum, wBuf0Addr, wBuf1Addr);
  235. }/* SetEPDblBuffAddr */
  236. /*----------------------------------------------------------------*/
  237. void SetEPDblBuf0Addr(BYTE bEpNum,WORD wBuf0Addr)
  238. {
  239. _SetEPDblBuf0Addr(bEpNum, wBuf0Addr);
  240. } /* SetEPDblBuf0Addr */
  241. /*----------------------------------------------------------------*/
  242. void SetEPDblBuf1Addr(BYTE bEpNum,WORD wBuf1Addr)
  243. {
  244. _SetEPDblBuf1Addr(bEpNum, wBuf1Addr);
  245. } /* SetEPDblBuf1Addr */
  246. /*----------------------------------------------------------------*/
  247. WORD GetEPDblBuf0Addr(BYTE bEpNum)
  248. {
  249. return(_GetEPDblBuf0Addr(bEpNum));
  250. } /* GetEPDblBuf0Addr */
  251. /*----------------------------------------------------------------*/
  252. WORD GetEPDblBuf1Addr(BYTE bEpNum)
  253. {
  254. return(_GetEPDblBuf1Addr(bEpNum));
  255. } /* GetEPDblBuf1Addr */
  256. /*----------------------------------------------------------------*/
  257. void SetEPDblBuffCount(BYTE bEpNum, BYTE bDir, WORD wCount)
  258. {
  259.  _SetEPDblBuffCount(bEpNum, bDir, wCount);
  260. } /* SetEPDblBuffCount */
  261. /*----------------------------------------------------------------*/
  262. void SetEPDblBuf0Count(BYTE bEpNum, BYTE bDir,WORD wCount)
  263. {
  264. _SetEPDblBuf0Count(bEpNum,bDir,wCount);
  265. } /* SetEPDblBuf0Count */
  266. /*----------------------------------------------------------------*/
  267. void SetEPDblBuf1Count(BYTE bEpNum, BYTE bDir,WORD wCount)
  268. {
  269. _SetEPDblBuf1Count(bEpNum,bDir,wCount);
  270. } /* SetEPDblBuf1Count */
  271. /*----------------------------------------------------------------*/
  272. WORD GetEPDblBuf0Count(BYTE bEpNum)
  273. {
  274.  return(_GetEPDblBuf0Count(bEpNum));
  275. } /* GetEPDblBuf0Count */
  276. /*----------------------------------------------------------------*/
  277. WORD GetEPDblBuf1Count(BYTE bEpNum)
  278. {
  279.  return(_GetEPDblBuf1Count(bEpNum));
  280. } /* GetEPDblBuf1Count */
  281. /*----------------------------------------------------------------*/
  282. EP_DBUF_DIR GetEPDblBufDir(BYTE bEpNum) {
  283.  if((WORD)(*_pEPRxCount(bEpNum) & 0xFC00) != 0)
  284.   return(EP_DBUF_OUT);
  285.  else if(((WORD)(*_pEPTxCount(bEpNum)) & 0x03FF) != 0)
  286.   return(EP_DBUF_IN);
  287.  else
  288.   return(EP_DBUF_ERR);
  289. } /* GetEPDblBufDir */
  290. /*----------------------------------------------------------------*/
  291. void FreeUserBuffer(BYTE bEpNum)
  292. {
  293.  if(GetEPDblBufDir(bEpNum) == EP_DBUF_OUT)
  294.  { /* OUT endpoint */
  295.   _ToggleDTOG_TX(bEpNum);
  296.  }
  297.  else if(GetEPDblBufDir(bEpNum) == EP_DBUF_IN)
  298.  { /* IN endpoint */
  299.   _ToggleDTOG_RX(bEpNum);
  300.  }
  301. } /* FreeUserBuffer */
  302. /*----------------------------------------------------------------*/
  303. /*----------------------------------------------------------------*/
  304. /* ToWord
  305.   Puts 2 bytes into a single word
  306.   IN  : bh & bl
  307.   OUT : return a word */
  308. /*----------------------------------------------------------------*/
  309. WORD ToWord(BYTE bh, BYTE bl)
  310. {
  311.  WORD wRet;
  312.    wRet = (WORD)bl | ((WORD)bh << 8);
  313.    return(wRet);
  314. }/* ToWord */
  315. /*----------------------------------------------------------------*/
  316. /* ByteSwap
  317.    Swaps two bytes in a word
  318.    IN  : word to swap
  319.    OUT : return word swapped */
  320. /*----------------------------------------------------------------*/
  321. WORD ByteSwap(WORD wSwW)
  322. {
  323.  BYTE bTemp;
  324.  WORD wRet;
  325.    bTemp = (BYTE)(wSwW & 0xff);
  326.    wRet =  (wSwW >> 8) | ((WORD)bTemp << 8);
  327.    return(wRet);
  328. } /* ByteSwap */
  329. /*----------------------------------------------------------------*/