void Serial_::flush(void) { if(USBDevice.configured()) { USB_Flush(CDC_TX); } }
void StartApplication( void (*StartAddress)() ) { PortBooterLoadProgram((void**)&StartAddress); hal_printf( "Starting main application at 0x%08x\r\n", (size_t)StartAddress ); LCD_Clear(); USART_Flush( ConvertCOM_ComPort(g_State.UsartPort) ); if(g_State.UsingUsb) { USB_Flush( ConvertCOM_UsbStream( g_State.UsbPort ) ); USB_CloseStream( ConvertCOM_UsbStream(g_State.UsbPort) ); USB_Uninitialize( ConvertCOM_UsbController(g_State.UsbPort) ); //disable the USB for the next application } DISABLE_INTERRUPTS(); LCD_Uninitialize(); CPU_DisableCaches(); (*StartAddress)(); }
BOOL DebuggerPort_Flush( COM_HANDLE ComPortNum ) { NATIVE_PROFILE_PAL_COM(); switch(ExtractTransport(ComPortNum)) { case USART_TRANSPORT: return USART_Flush( ConvertCOM_ComPort( ComPortNum ) ); case USB_TRANSPORT: return USB_Flush( ConvertCOM_UsbStream(ComPortNum) ); case SOCKET_TRANSPORT: return SOCKETS_Flush( ConvertCOM_SockPort(ComPortNum) ); } return FALSE; }
HRESULT Library_spot_hardware_usb_native_Microsoft_SPOT_Hardware_UsbClient_UsbStream::nativeFlush___VOID( CLR_RT_StackFrame& stack ) { TINYCLR_HEADER(); CLR_INT32 controllerIndex, streamIndex, stream; CLR_RT_HeapBlock* pThis; pThis = stack.This(); FAULT_ON_NULL(pThis); controllerIndex = pThis[ Library_spot_hardware_usb_native_Microsoft_SPOT_Hardware_UsbClient_UsbStream::FIELD__m_controllerIndex ].NumericByRef().s4; streamIndex = pThis[ Library_spot_hardware_usb_native_Microsoft_SPOT_Hardware_UsbClient_UsbStream::FIELD__m_streamIndex ].NumericByRef().s4; stream = (controllerIndex << USB_CONTROLLER_SHIFT) + streamIndex; USB_Flush( stream ); TINYCLR_NOCLEANUP(); }
void Serial_::flush(void) { USB_Flush(CDC_TX); }
void UDPHS_Handler( void ) { unsigned int status; unsigned char numIT; // Get interrupts status status = UDPHS->UDPHS_INTSTA & UDPHS->UDPHS_IEN; // Handle all UDPHS interrupts while (status != 0) { // Start of Frame - happens every millisecond so we use it for TX and RX LED one-shot timing, too if ((status & UDPHS_IEN_INT_SOF) != 0) { #ifdef CDC_ENABLED USB_Flush(CDC_TX); // Send a tx frame if found #endif // check whether the one-shot period has elapsed. if so, turn off the LED if (TxLEDPulse && !(--TxLEDPulse)) TXLED0; if (RxLEDPulse && !(--RxLEDPulse)) RXLED0; // Acknowledge interrupt UDPHS->UDPHS_CLRINT = UDPHS_CLRINT_INT_SOF; status &= ~UDPHS_IEN_INT_SOF; } // Suspend // This interrupt is always treated last (hence the '==') else if (status == UDPHS_IEN_DET_SUSPD) { //UDPHS_DisableBIAS(); // Enable wakeup UDPHS->UDPHS_IEN |= UDPHS_IEN_WAKE_UP | UDPHS_IEN_ENDOFRSM; UDPHS->UDPHS_IEN &= ~UDPHS_IEN_DET_SUSPD; // Acknowledge interrupt UDPHS->UDPHS_CLRINT = UDPHS_CLRINT_DET_SUSPD | UDPHS_CLRINT_WAKE_UP; //UDPHS_DisableUsbClock(); } // Resume else if( ((status & UDPHS_IEN_WAKE_UP) != 0) // line activity || ((status & UDPHS_IEN_ENDOFRSM) != 0)) { // pc wakeup { //UDPHS_EnableUsbClock(); //UDPHS_EnableBIAS(); UDPHS->UDPHS_CLRINT = UDPHS_CLRINT_WAKE_UP | UDPHS_CLRINT_ENDOFRSM | UDPHS_CLRINT_DET_SUSPD; UDPHS->UDPHS_IEN |= UDPHS_IEN_ENDOFRSM | UDPHS_IEN_DET_SUSPD; UDPHS->UDPHS_CLRINT = UDPHS_CLRINT_WAKE_UP | UDPHS_CLRINT_ENDOFRSM; UDPHS->UDPHS_IEN &= ~UDPHS_IEN_WAKE_UP; } } // End of Reset else if ((status & UDPHS_IEN_ENDRESET) == UDPHS_IEN_ENDRESET) { InitControl(0); // init ep0 _usbConfiguration = 0; // not configured yet //UEIENX = 1 << RXSTPE; // Enable interrupts for ep0 //UDPHS_ResetEndpoints(); //UDPHS_DisableEndpoints(); //USBD_ConfigureEndpoint(0); UDPHS->UDPHS_IEN |= (1<<SHIFT_INTERUPT<<0); // Flush and enable the Suspend interrupt UDPHS->UDPHS_CLRINT = UDPHS_CLRINT_WAKE_UP | UDPHS_CLRINT_DET_SUSPD; //// Enable the Start Of Frame (SOF) interrupt if needed UDPHS->UDPHS_IEN |= UDPHS_IEN_INT_SOF; // Acknowledge end of bus reset interrupt UDPHS->UDPHS_CLRINT = UDPHS_CLRINT_ENDRESET; UDPHS->UDPHS_IEN |= UDPHS_IEN_DET_SUSPD; } // Handle upstream resume interrupt else if (status & UDPHS_IEN_UPSTR_RES) { // - Acknowledge the IT UDPHS->UDPHS_CLRINT = UDPHS_CLRINT_UPSTR_RES; } // Endpoint interrupts else { // Handle endpoint interrupts for (numIT = 0; numIT < NUM_IT_MAX; numIT++) { if ((status & (1 << SHIFT_INTERUPT << numIT)) != 0) { USB_ISR(); //EndpointHandler(numIT); // TODO: interrupt for bulk } } } // Retrieve new interrupt status status = UDPHS->UDPHS_INTSTA & UDPHS->UDPHS_IEN; } }
void UsbMidiModule::_flush() { USB_Flush(getInEndpointId()); }
void MIDIUSB_::flush(void) { USB_Flush(MIDI_TX); }
int CDC::flush(void) { USB_Flush(CDC_TX); return (0); }