I'm trying to port GRBL 1.1 to the STM32F746 chip. Tell me the solution, thanks.

Committer:
Sergunb
Date:
Mon Sep 04 12:03:42 2017 +0000
Revision:
0:f1834a63f7c1
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sergunb 0:f1834a63f7c1 1 /******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
Sergunb 0:f1834a63f7c1 2 * File Name : usb_istr.c
Sergunb 0:f1834a63f7c1 3 * Author : MCD Application Team
Sergunb 0:f1834a63f7c1 4 * Version : V3.3.0
Sergunb 0:f1834a63f7c1 5 * Date : 21-March-2011
Sergunb 0:f1834a63f7c1 6 * Description : ISTR events interrupt service routines
Sergunb 0:f1834a63f7c1 7 ********************************************************************************
Sergunb 0:f1834a63f7c1 8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
Sergunb 0:f1834a63f7c1 9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
Sergunb 0:f1834a63f7c1 10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
Sergunb 0:f1834a63f7c1 11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
Sergunb 0:f1834a63f7c1 12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
Sergunb 0:f1834a63f7c1 13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
Sergunb 0:f1834a63f7c1 14 *******************************************************************************/
Sergunb 0:f1834a63f7c1 15
Sergunb 0:f1834a63f7c1 16 /* Includes ------------------------------------------------------------------*/
Sergunb 0:f1834a63f7c1 17 #include "usb_lib.h"
Sergunb 0:f1834a63f7c1 18 #include "usb_prop.h"
Sergunb 0:f1834a63f7c1 19 #include "usb_pwr.h"
Sergunb 0:f1834a63f7c1 20 #include "usb_istr.h"
Sergunb 0:f1834a63f7c1 21
Sergunb 0:f1834a63f7c1 22 /* Private typedef -----------------------------------------------------------*/
Sergunb 0:f1834a63f7c1 23 /* Private define ------------------------------------------------------------*/
Sergunb 0:f1834a63f7c1 24 /* Private macro -------------------------------------------------------------*/
Sergunb 0:f1834a63f7c1 25 /* Private variables ---------------------------------------------------------*/
Sergunb 0:f1834a63f7c1 26 __IO uint16_t wIstr; /* ISTR register last read value */
Sergunb 0:f1834a63f7c1 27 __IO uint8_t bIntPackSOF = 0; /* SOFs received between 2 consecutive packets */
Sergunb 0:f1834a63f7c1 28
Sergunb 0:f1834a63f7c1 29 /* Extern variables ----------------------------------------------------------*/
Sergunb 0:f1834a63f7c1 30 /* Private function prototypes -----------------------------------------------*/
Sergunb 0:f1834a63f7c1 31 /* Private functions ---------------------------------------------------------*/
Sergunb 0:f1834a63f7c1 32 /* function pointers to non-control endpoints service routines */
Sergunb 0:f1834a63f7c1 33 void (*pEpInt_IN[7])(void) =
Sergunb 0:f1834a63f7c1 34 {
Sergunb 0:f1834a63f7c1 35 EP1_IN_Callback,
Sergunb 0:f1834a63f7c1 36 EP2_IN_Callback,
Sergunb 0:f1834a63f7c1 37 EP3_IN_Callback,
Sergunb 0:f1834a63f7c1 38 EP4_IN_Callback,
Sergunb 0:f1834a63f7c1 39 EP5_IN_Callback,
Sergunb 0:f1834a63f7c1 40 EP6_IN_Callback,
Sergunb 0:f1834a63f7c1 41 EP7_IN_Callback,
Sergunb 0:f1834a63f7c1 42 };
Sergunb 0:f1834a63f7c1 43
Sergunb 0:f1834a63f7c1 44 void (*pEpInt_OUT[7])(void) =
Sergunb 0:f1834a63f7c1 45 {
Sergunb 0:f1834a63f7c1 46 EP1_OUT_Callback,
Sergunb 0:f1834a63f7c1 47 EP2_OUT_Callback,
Sergunb 0:f1834a63f7c1 48 EP3_OUT_Callback,
Sergunb 0:f1834a63f7c1 49 EP4_OUT_Callback,
Sergunb 0:f1834a63f7c1 50 EP5_OUT_Callback,
Sergunb 0:f1834a63f7c1 51 EP6_OUT_Callback,
Sergunb 0:f1834a63f7c1 52 EP7_OUT_Callback,
Sergunb 0:f1834a63f7c1 53 };
Sergunb 0:f1834a63f7c1 54
Sergunb 0:f1834a63f7c1 55 #ifndef STM32F10X_CL
Sergunb 0:f1834a63f7c1 56
Sergunb 0:f1834a63f7c1 57 /*******************************************************************************
Sergunb 0:f1834a63f7c1 58 * Function Name : USB_Istr
Sergunb 0:f1834a63f7c1 59 * Description : STR events interrupt service routine
Sergunb 0:f1834a63f7c1 60 * Input :
Sergunb 0:f1834a63f7c1 61 * Output :
Sergunb 0:f1834a63f7c1 62 * Return :
Sergunb 0:f1834a63f7c1 63 *******************************************************************************/
Sergunb 0:f1834a63f7c1 64 void USB_Istr(void)
Sergunb 0:f1834a63f7c1 65 {
Sergunb 0:f1834a63f7c1 66
Sergunb 0:f1834a63f7c1 67 wIstr = _GetISTR();
Sergunb 0:f1834a63f7c1 68
Sergunb 0:f1834a63f7c1 69 #if (IMR_MSK & ISTR_SOF)
Sergunb 0:f1834a63f7c1 70 if (wIstr & ISTR_SOF & wInterrupt_Mask)
Sergunb 0:f1834a63f7c1 71 {
Sergunb 0:f1834a63f7c1 72 _SetISTR((uint16_t)CLR_SOF);
Sergunb 0:f1834a63f7c1 73 bIntPackSOF++;
Sergunb 0:f1834a63f7c1 74
Sergunb 0:f1834a63f7c1 75 #ifdef SOF_CALLBACK
Sergunb 0:f1834a63f7c1 76 SOF_Callback();
Sergunb 0:f1834a63f7c1 77 #endif
Sergunb 0:f1834a63f7c1 78 }
Sergunb 0:f1834a63f7c1 79 #endif
Sergunb 0:f1834a63f7c1 80 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 81
Sergunb 0:f1834a63f7c1 82 #if (IMR_MSK & ISTR_CTR)
Sergunb 0:f1834a63f7c1 83 if (wIstr & ISTR_CTR & wInterrupt_Mask)
Sergunb 0:f1834a63f7c1 84 {
Sergunb 0:f1834a63f7c1 85 /* servicing of the endpoint correct transfer interrupt */
Sergunb 0:f1834a63f7c1 86 /* clear of the CTR flag into the sub */
Sergunb 0:f1834a63f7c1 87 CTR_LP();
Sergunb 0:f1834a63f7c1 88 #ifdef CTR_CALLBACK
Sergunb 0:f1834a63f7c1 89 CTR_Callback();
Sergunb 0:f1834a63f7c1 90 #endif
Sergunb 0:f1834a63f7c1 91 }
Sergunb 0:f1834a63f7c1 92 #endif
Sergunb 0:f1834a63f7c1 93 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 94 #if (IMR_MSK & ISTR_RESET)
Sergunb 0:f1834a63f7c1 95 if (wIstr & ISTR_RESET & wInterrupt_Mask)
Sergunb 0:f1834a63f7c1 96 {
Sergunb 0:f1834a63f7c1 97 _SetISTR((uint16_t)CLR_RESET);
Sergunb 0:f1834a63f7c1 98 Device_Property.Reset();
Sergunb 0:f1834a63f7c1 99 #ifdef RESET_CALLBACK
Sergunb 0:f1834a63f7c1 100 RESET_Callback();
Sergunb 0:f1834a63f7c1 101 #endif
Sergunb 0:f1834a63f7c1 102 }
Sergunb 0:f1834a63f7c1 103 #endif
Sergunb 0:f1834a63f7c1 104 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 105 #if (IMR_MSK & ISTR_DOVR)
Sergunb 0:f1834a63f7c1 106 if (wIstr & ISTR_DOVR & wInterrupt_Mask)
Sergunb 0:f1834a63f7c1 107 {
Sergunb 0:f1834a63f7c1 108 _SetISTR((uint16_t)CLR_DOVR);
Sergunb 0:f1834a63f7c1 109 #ifdef DOVR_CALLBACK
Sergunb 0:f1834a63f7c1 110 DOVR_Callback();
Sergunb 0:f1834a63f7c1 111 #endif
Sergunb 0:f1834a63f7c1 112 }
Sergunb 0:f1834a63f7c1 113 #endif
Sergunb 0:f1834a63f7c1 114 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 115 #if (IMR_MSK & ISTR_ERR)
Sergunb 0:f1834a63f7c1 116 if (wIstr & ISTR_ERR & wInterrupt_Mask)
Sergunb 0:f1834a63f7c1 117 {
Sergunb 0:f1834a63f7c1 118 _SetISTR((uint16_t)CLR_ERR);
Sergunb 0:f1834a63f7c1 119 #ifdef ERR_CALLBACK
Sergunb 0:f1834a63f7c1 120 ERR_Callback();
Sergunb 0:f1834a63f7c1 121 #endif
Sergunb 0:f1834a63f7c1 122 }
Sergunb 0:f1834a63f7c1 123 #endif
Sergunb 0:f1834a63f7c1 124 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 125 #if (IMR_MSK & ISTR_WKUP)
Sergunb 0:f1834a63f7c1 126 if (wIstr & ISTR_WKUP & wInterrupt_Mask)
Sergunb 0:f1834a63f7c1 127 {
Sergunb 0:f1834a63f7c1 128 _SetISTR((uint16_t)CLR_WKUP);
Sergunb 0:f1834a63f7c1 129 Resume(RESUME_EXTERNAL);
Sergunb 0:f1834a63f7c1 130 #ifdef WKUP_CALLBACK
Sergunb 0:f1834a63f7c1 131 WKUP_Callback();
Sergunb 0:f1834a63f7c1 132 #endif
Sergunb 0:f1834a63f7c1 133 }
Sergunb 0:f1834a63f7c1 134 #endif
Sergunb 0:f1834a63f7c1 135 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 136 #if (IMR_MSK & ISTR_SUSP)
Sergunb 0:f1834a63f7c1 137 if (wIstr & ISTR_SUSP & wInterrupt_Mask)
Sergunb 0:f1834a63f7c1 138 {
Sergunb 0:f1834a63f7c1 139
Sergunb 0:f1834a63f7c1 140 /* check if SUSPEND is possible */
Sergunb 0:f1834a63f7c1 141 if (fSuspendEnabled)
Sergunb 0:f1834a63f7c1 142 {
Sergunb 0:f1834a63f7c1 143 Suspend();
Sergunb 0:f1834a63f7c1 144 }
Sergunb 0:f1834a63f7c1 145 else
Sergunb 0:f1834a63f7c1 146 {
Sergunb 0:f1834a63f7c1 147 /* if not possible then resume after xx ms */
Sergunb 0:f1834a63f7c1 148 Resume(RESUME_LATER);
Sergunb 0:f1834a63f7c1 149 }
Sergunb 0:f1834a63f7c1 150 /* clear of the ISTR bit must be done after setting of CNTR_FSUSP */
Sergunb 0:f1834a63f7c1 151 _SetISTR((uint16_t)CLR_SUSP);
Sergunb 0:f1834a63f7c1 152 #ifdef SUSP_CALLBACK
Sergunb 0:f1834a63f7c1 153 SUSP_Callback();
Sergunb 0:f1834a63f7c1 154 #endif
Sergunb 0:f1834a63f7c1 155 }
Sergunb 0:f1834a63f7c1 156 #endif
Sergunb 0:f1834a63f7c1 157 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 158
Sergunb 0:f1834a63f7c1 159 #if (IMR_MSK & ISTR_ESOF)
Sergunb 0:f1834a63f7c1 160 if (wIstr & ISTR_ESOF & wInterrupt_Mask)
Sergunb 0:f1834a63f7c1 161 {
Sergunb 0:f1834a63f7c1 162 _SetISTR((uint16_t)CLR_ESOF);
Sergunb 0:f1834a63f7c1 163 /* resume handling timing is made with ESOFs */
Sergunb 0:f1834a63f7c1 164 Resume(RESUME_ESOF); /* request without change of the machine state */
Sergunb 0:f1834a63f7c1 165
Sergunb 0:f1834a63f7c1 166 #ifdef ESOF_CALLBACK
Sergunb 0:f1834a63f7c1 167 ESOF_Callback();
Sergunb 0:f1834a63f7c1 168 #endif
Sergunb 0:f1834a63f7c1 169 }
Sergunb 0:f1834a63f7c1 170 #endif
Sergunb 0:f1834a63f7c1 171 } /* USB_Istr */
Sergunb 0:f1834a63f7c1 172
Sergunb 0:f1834a63f7c1 173 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 174 #else /* STM32F10X_CL */
Sergunb 0:f1834a63f7c1 175
Sergunb 0:f1834a63f7c1 176
Sergunb 0:f1834a63f7c1 177 /*******************************************************************************
Sergunb 0:f1834a63f7c1 178 * Function Name : STM32_PCD_OTG_ISR_Handler
Sergunb 0:f1834a63f7c1 179 * Description : Handles all USB Device Interrupts
Sergunb 0:f1834a63f7c1 180 * Input : None
Sergunb 0:f1834a63f7c1 181 * Output : None
Sergunb 0:f1834a63f7c1 182 * Return : status
Sergunb 0:f1834a63f7c1 183 *******************************************************************************/
Sergunb 0:f1834a63f7c1 184 u32 STM32_PCD_OTG_ISR_Handler (void)
Sergunb 0:f1834a63f7c1 185 {
Sergunb 0:f1834a63f7c1 186 USB_OTG_GINTSTS_TypeDef gintr_status;
Sergunb 0:f1834a63f7c1 187 u32 retval = 0;
Sergunb 0:f1834a63f7c1 188
Sergunb 0:f1834a63f7c1 189 if (USBD_FS_IsDeviceMode()) /* ensure that we are in device mode */
Sergunb 0:f1834a63f7c1 190 {
Sergunb 0:f1834a63f7c1 191 gintr_status.d32 = OTGD_FS_ReadCoreItr();
Sergunb 0:f1834a63f7c1 192
Sergunb 0:f1834a63f7c1 193 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 194
Sergunb 0:f1834a63f7c1 195 /* If there is no interrupt pending exit the interrupt routine */
Sergunb 0:f1834a63f7c1 196 if (!gintr_status.d32)
Sergunb 0:f1834a63f7c1 197 {
Sergunb 0:f1834a63f7c1 198 return 0;
Sergunb 0:f1834a63f7c1 199 }
Sergunb 0:f1834a63f7c1 200
Sergunb 0:f1834a63f7c1 201 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 202 /* Early Suspend interrupt */
Sergunb 0:f1834a63f7c1 203 #ifdef INTR_ERLYSUSPEND
Sergunb 0:f1834a63f7c1 204 if (gintr_status.b.erlysuspend)
Sergunb 0:f1834a63f7c1 205 {
Sergunb 0:f1834a63f7c1 206 retval |= OTGD_FS_Handle_EarlySuspend_ISR();
Sergunb 0:f1834a63f7c1 207 }
Sergunb 0:f1834a63f7c1 208 #endif /* INTR_ERLYSUSPEND */
Sergunb 0:f1834a63f7c1 209
Sergunb 0:f1834a63f7c1 210 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 211 /* End of Periodic Frame interrupt */
Sergunb 0:f1834a63f7c1 212 #ifdef INTR_EOPFRAME
Sergunb 0:f1834a63f7c1 213 if (gintr_status.b.eopframe)
Sergunb 0:f1834a63f7c1 214 {
Sergunb 0:f1834a63f7c1 215 retval |= OTGD_FS_Handle_EOPF_ISR();
Sergunb 0:f1834a63f7c1 216 }
Sergunb 0:f1834a63f7c1 217 #endif /* INTR_EOPFRAME */
Sergunb 0:f1834a63f7c1 218
Sergunb 0:f1834a63f7c1 219 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 220 /* Non Periodic Tx FIFO Empty interrupt */
Sergunb 0:f1834a63f7c1 221 #ifdef INTR_NPTXFEMPTY
Sergunb 0:f1834a63f7c1 222 if (gintr_status.b.nptxfempty)
Sergunb 0:f1834a63f7c1 223 {
Sergunb 0:f1834a63f7c1 224 retval |= OTGD_FS_Handle_NPTxFE_ISR();
Sergunb 0:f1834a63f7c1 225 }
Sergunb 0:f1834a63f7c1 226 #endif /* INTR_NPTXFEMPTY */
Sergunb 0:f1834a63f7c1 227
Sergunb 0:f1834a63f7c1 228 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 229 /* Wakeup or RemoteWakeup interrupt */
Sergunb 0:f1834a63f7c1 230 #ifdef INTR_WKUPINTR
Sergunb 0:f1834a63f7c1 231 if (gintr_status.b.wkupintr)
Sergunb 0:f1834a63f7c1 232 {
Sergunb 0:f1834a63f7c1 233 retval |= OTGD_FS_Handle_Wakeup_ISR();
Sergunb 0:f1834a63f7c1 234 }
Sergunb 0:f1834a63f7c1 235 #endif /* INTR_WKUPINTR */
Sergunb 0:f1834a63f7c1 236
Sergunb 0:f1834a63f7c1 237 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 238 /* Suspend interrupt */
Sergunb 0:f1834a63f7c1 239 #ifdef INTR_USBSUSPEND
Sergunb 0:f1834a63f7c1 240 if (gintr_status.b.usbsuspend)
Sergunb 0:f1834a63f7c1 241 {
Sergunb 0:f1834a63f7c1 242 /* check if SUSPEND is possible */
Sergunb 0:f1834a63f7c1 243 if (fSuspendEnabled)
Sergunb 0:f1834a63f7c1 244 {
Sergunb 0:f1834a63f7c1 245 Suspend();
Sergunb 0:f1834a63f7c1 246 }
Sergunb 0:f1834a63f7c1 247 else
Sergunb 0:f1834a63f7c1 248 {
Sergunb 0:f1834a63f7c1 249 /* if not possible then resume after xx ms */
Sergunb 0:f1834a63f7c1 250 Resume(RESUME_LATER); /* This case shouldn't happen in OTG Device mode because
Sergunb 0:f1834a63f7c1 251 there's no ESOF interrupt to increment the ResumeS.bESOFcnt in the Resume state machine */
Sergunb 0:f1834a63f7c1 252 }
Sergunb 0:f1834a63f7c1 253
Sergunb 0:f1834a63f7c1 254 retval |= OTGD_FS_Handle_USBSuspend_ISR();
Sergunb 0:f1834a63f7c1 255 }
Sergunb 0:f1834a63f7c1 256 #endif /* INTR_USBSUSPEND */
Sergunb 0:f1834a63f7c1 257
Sergunb 0:f1834a63f7c1 258 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 259 /* Start of Frame interrupt */
Sergunb 0:f1834a63f7c1 260 #ifdef INTR_SOFINTR
Sergunb 0:f1834a63f7c1 261 if (gintr_status.b.sofintr)
Sergunb 0:f1834a63f7c1 262 {
Sergunb 0:f1834a63f7c1 263 /* Update the frame number variable */
Sergunb 0:f1834a63f7c1 264 bIntPackSOF++;
Sergunb 0:f1834a63f7c1 265
Sergunb 0:f1834a63f7c1 266 retval |= OTGD_FS_Handle_Sof_ISR();
Sergunb 0:f1834a63f7c1 267 }
Sergunb 0:f1834a63f7c1 268 #endif /* INTR_SOFINTR */
Sergunb 0:f1834a63f7c1 269
Sergunb 0:f1834a63f7c1 270 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 271 /* Receive FIFO Queue Status Level interrupt */
Sergunb 0:f1834a63f7c1 272 #ifdef INTR_RXSTSQLVL
Sergunb 0:f1834a63f7c1 273 if (gintr_status.b.rxstsqlvl)
Sergunb 0:f1834a63f7c1 274 {
Sergunb 0:f1834a63f7c1 275 retval |= OTGD_FS_Handle_RxStatusQueueLevel_ISR();
Sergunb 0:f1834a63f7c1 276 }
Sergunb 0:f1834a63f7c1 277 #endif /* INTR_RXSTSQLVL */
Sergunb 0:f1834a63f7c1 278
Sergunb 0:f1834a63f7c1 279 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 280 /* Enumeration Done interrupt */
Sergunb 0:f1834a63f7c1 281 #ifdef INTR_ENUMDONE
Sergunb 0:f1834a63f7c1 282 if (gintr_status.b.enumdone)
Sergunb 0:f1834a63f7c1 283 {
Sergunb 0:f1834a63f7c1 284 retval |= OTGD_FS_Handle_EnumDone_ISR();
Sergunb 0:f1834a63f7c1 285 }
Sergunb 0:f1834a63f7c1 286 #endif /* INTR_ENUMDONE */
Sergunb 0:f1834a63f7c1 287
Sergunb 0:f1834a63f7c1 288 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 289 /* Reset interrupt */
Sergunb 0:f1834a63f7c1 290 #ifdef INTR_USBRESET
Sergunb 0:f1834a63f7c1 291 if (gintr_status.b.usbreset)
Sergunb 0:f1834a63f7c1 292 {
Sergunb 0:f1834a63f7c1 293 retval |= OTGD_FS_Handle_UsbReset_ISR();
Sergunb 0:f1834a63f7c1 294 }
Sergunb 0:f1834a63f7c1 295 #endif /* INTR_USBRESET */
Sergunb 0:f1834a63f7c1 296
Sergunb 0:f1834a63f7c1 297 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 298 /* IN Endpoint interrupt */
Sergunb 0:f1834a63f7c1 299 #ifdef INTR_INEPINTR
Sergunb 0:f1834a63f7c1 300 if (gintr_status.b.inepint)
Sergunb 0:f1834a63f7c1 301 {
Sergunb 0:f1834a63f7c1 302 retval |= OTGD_FS_Handle_InEP_ISR();
Sergunb 0:f1834a63f7c1 303 }
Sergunb 0:f1834a63f7c1 304 #endif /* INTR_INEPINTR */
Sergunb 0:f1834a63f7c1 305
Sergunb 0:f1834a63f7c1 306 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 307 /* OUT Endpoint interrupt */
Sergunb 0:f1834a63f7c1 308 #ifdef INTR_OUTEPINTR
Sergunb 0:f1834a63f7c1 309 if (gintr_status.b.outepintr)
Sergunb 0:f1834a63f7c1 310 {
Sergunb 0:f1834a63f7c1 311 retval |= OTGD_FS_Handle_OutEP_ISR();
Sergunb 0:f1834a63f7c1 312 }
Sergunb 0:f1834a63f7c1 313 #endif /* INTR_OUTEPINTR */
Sergunb 0:f1834a63f7c1 314
Sergunb 0:f1834a63f7c1 315 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 316 /* Mode Mismatch interrupt */
Sergunb 0:f1834a63f7c1 317 #ifdef INTR_MODEMISMATCH
Sergunb 0:f1834a63f7c1 318 if (gintr_status.b.modemismatch)
Sergunb 0:f1834a63f7c1 319 {
Sergunb 0:f1834a63f7c1 320 retval |= OTGD_FS_Handle_ModeMismatch_ISR();
Sergunb 0:f1834a63f7c1 321 }
Sergunb 0:f1834a63f7c1 322 #endif /* INTR_MODEMISMATCH */
Sergunb 0:f1834a63f7c1 323
Sergunb 0:f1834a63f7c1 324 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 325 /* Global IN Endpoints NAK Effective interrupt */
Sergunb 0:f1834a63f7c1 326 #ifdef INTR_GINNAKEFF
Sergunb 0:f1834a63f7c1 327 if (gintr_status.b.ginnakeff)
Sergunb 0:f1834a63f7c1 328 {
Sergunb 0:f1834a63f7c1 329 retval |= OTGD_FS_Handle_GInNakEff_ISR();
Sergunb 0:f1834a63f7c1 330 }
Sergunb 0:f1834a63f7c1 331 #endif /* INTR_GINNAKEFF */
Sergunb 0:f1834a63f7c1 332
Sergunb 0:f1834a63f7c1 333 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 334 /* Global OUT Endpoints NAK effective interrupt */
Sergunb 0:f1834a63f7c1 335 #ifdef INTR_GOUTNAKEFF
Sergunb 0:f1834a63f7c1 336 if (gintr_status.b.goutnakeff)
Sergunb 0:f1834a63f7c1 337 {
Sergunb 0:f1834a63f7c1 338 retval |= OTGD_FS_Handle_GOutNakEff_ISR();
Sergunb 0:f1834a63f7c1 339 }
Sergunb 0:f1834a63f7c1 340 #endif /* INTR_GOUTNAKEFF */
Sergunb 0:f1834a63f7c1 341
Sergunb 0:f1834a63f7c1 342 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 343 /* Isochronous Out packet Dropped interrupt */
Sergunb 0:f1834a63f7c1 344 #ifdef INTR_ISOOUTDROP
Sergunb 0:f1834a63f7c1 345 if (gintr_status.b.isooutdrop)
Sergunb 0:f1834a63f7c1 346 {
Sergunb 0:f1834a63f7c1 347 retval |= OTGD_FS_Handle_IsoOutDrop_ISR();
Sergunb 0:f1834a63f7c1 348 }
Sergunb 0:f1834a63f7c1 349 #endif /* INTR_ISOOUTDROP */
Sergunb 0:f1834a63f7c1 350
Sergunb 0:f1834a63f7c1 351 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 352 /* Endpoint Mismatch error interrupt */
Sergunb 0:f1834a63f7c1 353 #ifdef INTR_EPMISMATCH
Sergunb 0:f1834a63f7c1 354 if (gintr_status.b.epmismatch)
Sergunb 0:f1834a63f7c1 355 {
Sergunb 0:f1834a63f7c1 356 retval |= OTGD_FS_Handle_EPMismatch_ISR();
Sergunb 0:f1834a63f7c1 357 }
Sergunb 0:f1834a63f7c1 358 #endif /* INTR_EPMISMATCH */
Sergunb 0:f1834a63f7c1 359
Sergunb 0:f1834a63f7c1 360 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 361 /* Incomplete Isochronous IN transfer error interrupt */
Sergunb 0:f1834a63f7c1 362 #ifdef INTR_INCOMPLISOIN
Sergunb 0:f1834a63f7c1 363 if (gintr_status.b.incomplisoin)
Sergunb 0:f1834a63f7c1 364 {
Sergunb 0:f1834a63f7c1 365 retval |= OTGD_FS_Handle_IncomplIsoIn_ISR();
Sergunb 0:f1834a63f7c1 366 }
Sergunb 0:f1834a63f7c1 367 #endif /* INTR_INCOMPLISOIN */
Sergunb 0:f1834a63f7c1 368
Sergunb 0:f1834a63f7c1 369 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Sergunb 0:f1834a63f7c1 370 /* Incomplete Isochronous OUT transfer error interrupt */
Sergunb 0:f1834a63f7c1 371 #ifdef INTR_INCOMPLISOOUT
Sergunb 0:f1834a63f7c1 372 if (gintr_status.b.outepintr)
Sergunb 0:f1834a63f7c1 373 {
Sergunb 0:f1834a63f7c1 374 retval |= OTGD_FS_Handle_IncomplIsoOut_ISR();
Sergunb 0:f1834a63f7c1 375 }
Sergunb 0:f1834a63f7c1 376 #endif /* INTR_INCOMPLISOOUT */
Sergunb 0:f1834a63f7c1 377
Sergunb 0:f1834a63f7c1 378 }
Sergunb 0:f1834a63f7c1 379 return retval;
Sergunb 0:f1834a63f7c1 380 }
Sergunb 0:f1834a63f7c1 381
Sergunb 0:f1834a63f7c1 382 #endif /* STM32F10X_CL */
Sergunb 0:f1834a63f7c1 383
Sergunb 0:f1834a63f7c1 384 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/