12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /******************************************************************//**
- * @file drv_dma.c
- * @brief USART driver of RT-Thread RTOS for EFM32
- * COPYRIGHT (C) 2011, RT-Thread Development Team
- * @author onelife
- * @version 0.4 beta
- **********************************************************************
- * @section License
- * The license and distribution terms for this file may be found in the file LICENSE in this
- * distribution or at http://www.rt-thread.org/license/LICENSE
- **********************************************************************
- * @section Change Logs
- * Date Author Notes
- * 2010-12-23 onelife Initial creation for EFM32
- *********************************************************************/
-
- /******************************************************************//**
- * @addtogroup efm32
- * @{
- *********************************************************************/
- /* Includes -------------------------------------------------------------------*/
- #include "board.h"
- #include "drv_dma.h"
- /* Private typedef -------------------------------------------------------------*/
- /* Private define --------------------------------------------------------------*/
- /* Private macro --------------------------------------------------------------*/
- /* Private variables ------------------------------------------------------------*/
- /** DMA control block, requires proper alignment. */
- #if defined (__ICCARM__)
- #pragma data_alignment=256
- DMA_DESCRIPTOR_TypeDef dmaControlBlock[DMA_CHAN_COUNT * 2];
- #elif defined (__CC_ARM)
- DMA_DESCRIPTOR_TypeDef dmaControlBlock[DMA_CHAN_COUNT * 2] __attribute__ ((aligned(256)));
- #elif defined (__GNUC__)
- DMA_DESCRIPTOR_TypeDef dmaControlBlock[DMA_CHAN_COUNT * 2] __attribute__ ((aligned(256)));
- #else
- #error Undefined toolkit, need to define alignment
- #endif
- /* Private function prototypes ---------------------------------------------------*/
- /* Private functions ------------------------------------------------------------*/
- /******************************************************************//**
- * @brief
- * Initialize DMA hardware
- *
- * @details
- *
- * @note
- *********************************************************************/
- void rt_hw_dma_init(void)
- {
- DMA_Init_TypeDef dmaInit;
- /* Reset */
- DMA_Reset();
-
- dmaInit.hprot = 0;
- dmaInit.controlBlock = (DMA_DESCRIPTOR_TypeDef *)&dmaControlBlock;
- DMA_Init(&dmaInit);
- NVIC_SetPriority(DMA_IRQn, EFM32_IRQ_PRI_DEFAULT);
- }
- /******************************************************************//**
- * @}
- *********************************************************************/
|