Ejemplo n.º 1
0
uint32_t _kuart_mix_deinit
	(
	   /* [IN] the interrupt I/O initialization information */
	   KUART_INIT_STRUCT_PTR io_init_ptr,

	   /* [IN] the address of the device specific information */
	   KUART_INFO_STRUCT_PTR io_info_ptr
	)
{ /* Body */
    if (!io_info_ptr)
        return MQX_INVALID_PARAMETER;

    if (io_info_ptr->LW_TIMER_PTR) {
        _lwtimer_cancel_period(io_info_ptr->LW_TIMER_PTR);
        _mem_free(io_info_ptr->LW_TIMER_PTR);
    }

    dma_request_disable(io_info_ptr->RX_DCH);
    dma_channel_release(io_info_ptr->RX_DCH);
	
    _kuart_polled_deinit(io_init_ptr, io_info_ptr);

    if (io_info_ptr->RX_BUF)
        _mem_free(io_info_ptr->RX_BUF);

    _int_install_isr(io_info_ptr->ERR_INT, io_info_ptr->OLD_ISR_ERR, io_info_ptr->OLD_ISR_ERR_DATA);
    _int_install_isr(io_init_ptr->RX_TX_VECTOR, io_info_ptr->OLD_ISR_TXRX, io_info_ptr->OLD_ISR_TXRX_DATA);

    return(MQX_OK);

} /* Endbody */
Ejemplo n.º 2
0
uint_32 _kuart_int_deinit
   (
      /* [IN] the interrupt I/O initialization information */
      KUART_INIT_STRUCT_PTR io_init_ptr,

      /* [IN] the address of the device specific information */
      KUART_INFO_STRUCT_PTR io_info_ptr
   )
{ /* Body */
   UART_MemMapPtr sci_ptr = io_info_ptr->SCI_PTR;

   _kuart_polled_deinit(io_init_ptr, io_info_ptr);

   _int_install_isr(io_init_ptr->RX_TX_VECTOR, io_info_ptr->OLD_ISR, io_info_ptr->OLD_ISR_DATA);

   return(MQX_OK);

} /* Endbody */