void CPU_UninitializeCommunication() { NATIVE_PROFILE_PAL_COM(); // STDIO can be different from the Debug Text port // do these first so we can print out messages if(COM_IsSerial(HalSystemConfig.DebugTextPort)) { USART_Uninitialize( ConvertCOM_ComPort(HalSystemConfig.DebugTextPort) ); } if(COM_IsSerial(HalSystemConfig.stdio)) { USART_Uninitialize( ConvertCOM_ComPort(HalSystemConfig.stdio) ); } // if USB is not defined, the STUB_USB will be set // Do not uninitialize the USB on soft reboot if USB is our debugger link // Close all streams on USB controller 0 except debugger (if it uses a USB stream) for( int stream = 0; stream < USB_MAX_QUEUES; stream++ ) { if(!COM_IsUsb(HalSystemConfig.DebuggerPorts[0]) || (ConvertCOM_UsbStream(HalSystemConfig.DebugTextPort) != stream)) { USB_CloseStream(stream); // OK for unopen streams } } USB_Uninitialize(0); // USB_Uninitialize will only stop USB controller 0 if it has no open streams Network_Uninitialize(); }
BOOL DebuggerPort_Uninitialize( COM_HANDLE ComPortNum ) { NATIVE_PROFILE_PAL_COM(); switch(ExtractTransport(ComPortNum)) { case USART_TRANSPORT: return USART_Uninitialize( ConvertCOM_ComPort(ComPortNum) ); case USB_TRANSPORT: USB_CloseStream( ConvertCOM_UsbStream(ComPortNum) ); return USB_Uninitialize( ConvertCOM_UsbController(ComPortNum) ); case SOCKET_TRANSPORT: return SOCKETS_Uninitialize(ConvertCOM_SockPort(ComPortNum)); } return FALSE; }
static int32_t USART1_Uninitialize (void) { return USART_Uninitialize (&USART1_Resources); }