bleSDK_expansion_board/core/reg/reg_dmachcfg.h

118 lines
5.1 KiB
C

#ifndef _REG_DMACHCFG_H_
#define _REG_DMACHCFG_H_
#include "reg_base.h"
//================================
//BLOCK DMACHCFG define
#define DMACHCFG_BASE ((uint32_t)0x40027000)
#define DMACHCFG_IFLAG0_ADDR_OFFSET 0x000
#define DMACHCFG_IFLAG1_ADDR_OFFSET 0x004
#define DMACHCFG_ISFR0_ADDR_OFFSET 0x008
#define DMACHCFG_ISFR1_ADDR_OFFSET 0x00c
#define DMACHCFG_ICFR0_ADDR_OFFSET 0x010
#define DMACHCFG_ICFR1_ADDR_OFFSET 0x014
#define DMACHCFG_IEFR0_ADDR_OFFSET 0x018
#define DMACHCFG_IEFR1_ADDR_OFFSET 0x01c
#define DMACHCFG_CHSEL0_CONTAIN_ADDR_OFFSET 0x100
#define DMACHCFG_CHSEL1_CONTAIN_ADDR_OFFSET 0x104
//================================
//BLOCK DMACHCFG reg struct define
typedef union //0x100
{
struct
{
uint32_t CH0_SEL: 6; // bit[5:0]
uint32_t RSV_NOUSE1: 2; // bit[7:6] --- Ignore me
uint32_t CH1_SEL: 6; // bit[13:8]
uint32_t RSV_NOUSE2: 2; // bit[15:14]-- Ignore me
uint32_t CH2_SEL: 6; // bit[21:16]
uint32_t RSV_NOUSE3: 2; // bit[23:22]-- Ignore me
uint32_t CH3_SEL: 6; // bit[29:24]
uint32_t RSV_END: 2; // bit[31:30]
};
uint32_t Word;
} DMACHCFG_CHSEL0_CONTAIN_TypeDef; //0x100
//================================
#define DMACHCFG_CH0_SEL_LSB 0
#define DMACHCFG_CH0_SEL_WIDTH 6
#define DMACHCFG_CH1_SEL_LSB 8
#define DMACHCFG_CH1_SEL_WIDTH 6
#define DMACHCFG_CH2_SEL_LSB 16
#define DMACHCFG_CH2_SEL_WIDTH 6
#define DMACHCFG_CH3_SEL_LSB 24
#define DMACHCFG_CH3_SEL_WIDTH 6
//================================
typedef union //0x104
{
struct
{
uint32_t CH4_SEL: 6; // bit[5:0]
uint32_t RSV_NOUSE1: 2; // bit[7:6] --- Ignore me
uint32_t CH5_SEL: 6; // bit[13:8]
uint32_t RSV_NOUSE2: 2; // bit[15:14]-- Ignore me
uint32_t CH6_SEL: 6; // bit[21:16]
uint32_t RSV_NOUSE3: 2; // bit[23:22]-- Ignore me
uint32_t CH7_SEL: 6; // bit[29:24]
uint32_t RSV_END: 2; // bit[31:30]
};
uint32_t Word;
} DMACHCFG_CHSEL1_CONTAIN_TypeDef; //0x104
//================================
#define DMACHCFG_CH4_SEL_LSB 0
#define DMACHCFG_CH4_SEL_WIDTH 6
#define DMACHCFG_CH5_SEL_LSB 8
#define DMACHCFG_CH5_SEL_WIDTH 6
#define DMACHCFG_CH6_SEL_LSB 16
#define DMACHCFG_CH6_SEL_WIDTH 6
#define DMACHCFG_CH7_SEL_LSB 24
#define DMACHCFG_CH7_SEL_WIDTH 6
//================================
//================================
//BLOCK DMACHCFG top struct define
typedef struct
{
__I uint32_t IFLAG0 ; // 0x000,
// dma interupt flag
__I uint32_t IFLAG1 ; // 0x004,
// dma err flag
__IO uint32_t ISFR0 ; // 0x008,
// no use
__IO uint32_t ISFR1 ; // 0x00c,
// no use
__O uint32_t ICFR0 ; // 0x010,
// clear dma channel interupt
__O uint32_t ICFR1 ; // 0x014,
// clear dma interupt error flag
__IO uint32_t IEFR0 ; // 0x018,
// enable dma channel[x] interupt
__IO uint32_t IEFR1 ; // 0x01c,
// enable dma error interrupt
__I uint32_t RSV0[56] ;
union
{
__IO uint32_t CHSEL[2];
struct
{
__IO DMACHCFG_CHSEL0_CONTAIN_TypeDef CHSEL0_CONTAIN ; // 0x100,
// include channel(0~3)
__IO DMACHCFG_CHSEL1_CONTAIN_TypeDef CHSEL1_CONTAIN ; // 0x104,
// include channel(4~7)
};
};
} DMACHCFG_TypeDef;
#define DMACHCFG (( DMACHCFG_TypeDef *) DMACHCFG_BASE)
#endif