mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-01-15 06:59:22 +08:00
ea6d73f140
1. Upgrade Cortex driver library (CMSIS -> CMSIS & Device): version 2.3.2 -> 3.0.1 & 3.0.0 - Remove "bsp/efm32/Libraries/CMSIS/Lib/ARM", "bsp/efm32/Libraries/CMSIS/Lib/G++" and "bsp/efm32/Libraries/CMSIS/SVD" to save space 2. Upgrade EFM32 driver libraries (efm32lib -> emlib): version 2.3.2 -> 3.0.0 - Remove "bsp/efm32/Libraries/Device/EnergyMicro/EFM32LG" and "bsp/efm32/Libraries/Device/EnergyMicro/EFM32TG" to save space 3. Upgrade EFM32GG_DK3750 development kit driver library: version 1.2.2 -> 2.0.1 4. Upgrade EFM32_Gxxx_DK development kit driver library: version 1.7.3 -> 2.0.1 5. Add energy management unit driver and test code 6. Modify linker script and related code to compatible with new version of libraries 7. Change EFM32 branch version number to 1.0 8. Add photo frame demo application git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2122 bbd45198-f89e-11dd-88c7-29a3b14d5316
73 lines
2.2 KiB
C
73 lines
2.2 KiB
C
/***************************************************************************//**
|
|
* @file drv_leuart.h
|
|
* @brief LEUART driver of RT-Thread RTOS for EFM32
|
|
* COPYRIGHT (C) 2012, RT-Thread Development Team
|
|
* @author onelife
|
|
* @version 1.0
|
|
*******************************************************************************
|
|
* @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
|
|
* 2011-12-09 onelife Initial creation for EFM32
|
|
******************************************************************************/
|
|
#ifndef __DRV_LEUSART_H__
|
|
#define __DRV_LEUSART_H__
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
/* Exported types ------------------------------------------------------------*/
|
|
struct efm32_leuart_int_mode_t
|
|
{
|
|
rt_uint8_t *data_ptr;
|
|
rt_uint8_t data_size;
|
|
rt_uint32_t read_index, save_index;
|
|
};
|
|
|
|
struct efm32_leuart_dma_mode_t
|
|
{
|
|
/* DMA Channel */
|
|
rt_uint32_t dma_channel;
|
|
|
|
/* buffer info */
|
|
rt_uint32_t *data_ptr;
|
|
rt_uint8_t data_size;
|
|
};
|
|
|
|
struct efm32_leuart_device_t
|
|
{
|
|
/* Counter */
|
|
rt_uint32_t counter;
|
|
/* Lock */
|
|
struct rt_semaphore *lock;
|
|
/* Unit number */
|
|
rt_uint8_t unit;
|
|
/* State */
|
|
volatile rt_uint8_t state;
|
|
/* Pointer to LEUART device structure */
|
|
LEUART_TypeDef *leuart_device;
|
|
/* Pointer to RX structure */
|
|
void *rx_mode;
|
|
/* Pointer to TX structure */
|
|
void *tx_mode;
|
|
};
|
|
|
|
/* Exported constants --------------------------------------------------------*/
|
|
/* Exported macro ------------------------------------------------------------*/
|
|
#define LEUART_WAIT_TIME_TX (RT_TICK_PER_SECOND / 100 * 3)
|
|
|
|
#define LEUART_STATE_CONSOLE (1 << 0)
|
|
#define LEUART_STATE_SYNC (1 << 1)
|
|
#define LEUART_STATE_MASTER (1 << 2)
|
|
#define LEUART_STATE_AUTOCS (1 << 3)
|
|
#define LEUART_STATE_TX_BUSY (1 << 4)
|
|
#define LEUART_STATE_RX_BUSY (1 << 5)
|
|
|
|
|
|
/* Exported functions ------------------------------------------------------- */
|
|
void rt_hw_leuart_init(void);
|
|
|
|
#endif /* __DRV_LEUSART_H__ */
|
|
|