当前位置: 首页>>代码示例>>C++>>正文


C++ PHAL_RUART_OP::HalRuartRxGdmaLoadDef方法代码示例

本文整理汇总了C++中PHAL_RUART_OP::HalRuartRxGdmaLoadDef方法的典型用法代码示例。如果您正苦于以下问题:C++ PHAL_RUART_OP::HalRuartRxGdmaLoadDef方法的具体用法?C++ PHAL_RUART_OP::HalRuartRxGdmaLoadDef怎么用?C++ PHAL_RUART_OP::HalRuartRxGdmaLoadDef使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PHAL_RUART_OP的用法示例。


在下文中一共展示了PHAL_RUART_OP::HalRuartRxGdmaLoadDef方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: serial_recv_stream_dma

int32_t serial_recv_stream_dma (serial_t *obj, char *prxbuf, uint32_t len)
{
    PHAL_RUART_OP      pHalRuartOp;
    PHAL_RUART_ADAPTER pHalRuartAdapter=(PHAL_RUART_ADAPTER)&(obj->hal_uart_adp);
    u8  uart_idx = pHalRuartAdapter->UartIndex;
    int32_t ret;

    pHalRuartOp = &(obj->hal_uart_op);
    if ((serial_dma_en[uart_idx] & SERIAL_RX_DMA_EN)==0) {
        PUART_DMA_CONFIG   pHalRuartDmaCfg;

        pHalRuartDmaCfg = &obj->uart_gdma_cfg;
#if 0        
        pHalRuartOp->HalRuartRxGdmaLoadDef (pHalRuartAdapter, pHalRuartDmaCfg);
        pHalRuartOp->HalRuartDmaInit (pHalRuartAdapter);
        InterruptRegister(&pHalRuartDmaCfg->RxGdmaIrqHandle);
        InterruptEn(&pHalRuartDmaCfg->RxGdmaIrqHandle);
        serial_dma_en[uart_idx] |= SERIAL_RX_DMA_EN;
#else
        if (HAL_OK == HalRuartRxGdmaInit(pHalRuartOp, pHalRuartAdapter, pHalRuartDmaCfg)) {
            serial_dma_en[uart_idx] |= SERIAL_RX_DMA_EN;
        }
        else {
            return HAL_BUSY;
        }
#endif
    }
    ret = pHalRuartOp->HalRuartDmaRecv(pHalRuartAdapter, (u8*)prxbuf, len);
    return (ret);
}
开发者ID:geliang201201,项目名称:RTL_Ameba,代码行数:30,代码来源:serial_api.c

示例2: HalGdmaOpInit

/**
 * Load UART HAL GDMA default setting
 *
 * Call this function to load the default setting for UART GDMA
 *
 *
 */
VOID
HalRuartRxGdmaInit(
    PRUART_ADAPTER pRuartAdapter
)
{
    PHAL_RUART_OP pHalRuartOp;
    PHAL_RUART_ADAPTER pHalRuartAdapter;
    PUART_DMA_CONFIG pUartGdmaConfig;
    PHAL_GDMA_ADAPTER pHalGdmaAdapter;
    
    if (NULL == pRuartAdapter) {
        return;
    }
    
    pHalRuartOp = pRuartAdapter->pHalRuartOp;
    pHalRuartAdapter = pRuartAdapter->pHalRuartAdapter;
    pUartGdmaConfig = pRuartAdapter->pHalRuartDmaCfg;

    if ((NULL == pHalRuartOp) || (NULL == pHalRuartAdapter) || (NULL == pUartGdmaConfig)) {
        return;
    }

    // Load default setting
    if (pHalRuartOp->HalRuartRxGdmaLoadDef != NULL) {
        HalGdmaOpInit((VOID*) (pUartGdmaConfig->pHalGdmaOp));
        pHalRuartOp->HalRuartRxGdmaLoadDef (pHalRuartAdapter, pUartGdmaConfig);
    }
    else {
        // Initial your GDMA setting here
    }

    // Start to patch the default setting
    pHalGdmaAdapter = (PHAL_GDMA_ADAPTER)pUartGdmaConfig->pRxHalGdmaAdapter;
    pHalGdmaAdapter->GdmaIndex   = 0;  // GDMA1
    pHalGdmaAdapter->ChNum       = 5;   // GDMA Channel
    pHalGdmaAdapter->ChEn        = GdmaCh5;     // GDMA Channel Enable

//    pUartGdmaConfig->RxGdmaIrqHandle.Data = pHalRuartAdapter;
    pUartGdmaConfig->RxGdmaIrqHandle.IrqNum = GDMA0_CHANNEL5_IRQ;
//    pUartGdmaConfig->RxGdmaIrqHandle.IrqFun = (IRQ_FUN)_UartTxDmaIrqHandle;
    pUartGdmaConfig->RxGdmaIrqHandle.Priority = 0x20;

    pHalRuartOp->HalRuartDmaInit (pHalRuartAdapter);
    InterruptRegister(&pUartGdmaConfig->RxGdmaIrqHandle);
    InterruptEn(&pUartGdmaConfig->RxGdmaIrqHandle);
}
开发者ID:eggman,项目名称:arm-gcc-blink-example,代码行数:53,代码来源:hal_uart.c


注:本文中的PHAL_RUART_OP::HalRuartRxGdmaLoadDef方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。