BOOTLOADER
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
dma2.h
Go to the documentation of this file.
1 #ifndef DMA2_H
2 #define DMA2_H
3 
4 #define DMA2_IISSDO 0
5 #define DMA2_IISSDI 1
6 #define DMA2_SDI 2
7 #define DMA2_TIMER 3
8 #define DMA2_USB_EP3 4
9 
10 #define DMA2_TRIGGER_HW 0
11 #define DMA2_TRIGGER_SW 1
12 
13 // DISRCC, DIDSTC parameters
14 #define DMA2_SRC_LOC_APB 0x02
15 #define DMA2_SRC_LOC_AHB 0x00
16 #define DMA2_SRC_ADDR_FIXED 0x01
17 #define DMA2_SRC_ADDR_INC 0x00
18 #define DMA2_DST_LOC_APB 0x02
19 #define DMA2_DST_LOC_AHB 0x00
20 #define DMA2_DST_ADDR_FIXED 0x01
21 #define DMA2_DST_ADDR_INC 0x00
22 // DCON paramaters
23 #define DMA2_HANDSHAKE_MODE 0x80000000 //[31]
24 #define DMA2_DEMAND_MODE 0x00000000
25 #define DMA2_SYNC_AHB 0x40000000 //[30]
26 #define DMA2_SYNC_APB 0x00000000
27 #define DMA2_DONE_GEN_INT 0x20000000 //[29]
28 #define DMA2_DONE_NO_INT 0x00000000
29 #define DMA2_TSZ_BURST 0x10000000 //[28]
30 #define DMA2_TSZ_UNIT 0x00000000
31 #define DMA2_WHOLE_SVC 0x08000000 //[27]
32 #define DMA2_SINGLE_SVC 0x00000000
33 #define DMA2_HW_TRIG 0x00800000 //[23]
34 #define DMA2_SW_TRIG 0x00000000
35 #define DMA2_RELOAD_OFF 0x00400000 //[22]
36 #define DMA2_RELOAD_ON 0x00000000
37 #define DMA2_DSZ_8b 0x00000000
38 #define DMA2_DSZ_16b 0x00100000
39 #define DMA2_DSZ_32b 0x00200000 //[21:20]
40 
41 typedef struct{ // DMA registers
42  volatile U32 DISRC; // 0x0 dma initial source reg.
43  volatile U32 DISRCC; // 0x4 dma initial source control reg.
44  volatile U32 DIDST; // 0x8 dma initial destination reg.
45  volatile U32 DIDSTC; // 0xc dma initial destination control reg.
46  volatile U32 DCON; // 0x10 dma control reg.
47  volatile U32 DSTAT; // 0x14 dma status reg.
48  volatile U32 DCSRC; // 0x18 dma current source reg.
49  volatile U32 DCDST; // 0x1c dma current destination reg.
50  volatile U32 DMASKTRIG; // 0x20 dma mask trigger reg.
52 
53 typedef struct{
65 
66 extern DMA2_CONTROL Dma2Ctrl;
67 extern void F_Dma2Init(void);
68 extern void F_Dma2Svc(void);
69 extern INT8U F_Dma2InUseCheck(void);
70 extern INT8U F_Dma2Allocate(INT16U UserId);
71 extern INT8U F_Dma2Release(INT16U UserId);
72 extern INT8U F_Dma2Start(INT16U UserId);
73 extern INT8U F_Dma2Stop(INT16U UserId);
74 extern INT8U F_Dma2Run(INT16U UserId);
75 extern INT8U F_Dma2DisrcSet(INT16U UserId,INT32U InitialSource);
76 extern INT8U F_Dma2DidstSet(INT16U UserId,INT32U InitialDestination);
77 extern INT8U F_Dma2DisrccSet(INT16U UserId,INT32U InitialSourceCtrl);
78 extern INT8U F_Dma2DidstcSet(INT16U UserId,INT32U InitialDestinationCtrl);
79 extern INT8U F_Dma2DconSet(INT16U UserId,INT32U DmaControl);
80 extern INT8U F_Dma2LengthSet(INT16U UserId,INT32U Length);
81 extern INT8U F_Dma2TriggerModeSet(INT16U UserId,INT8U TriggerMode);
82 extern INT32U F_Dma2StatusRegisterGet(void);
83 extern INT8U F_Dma2IsrHookFunctionSet(INT16U UserId,INT32U Function);
84 extern INT8U F_Dma2DisrcSetIsr(INT16U UserId,INT32U InitialSource);
85 extern INT8U F_Dma2DidstSetIsr(INT16U UserId,INT32U InitialDestination);
86 extern INT8U F_Dma2LengthSetIsr(INT16U UserId,INT32U Length);
87 extern INT8U F_Dma2StartIsr(INT16U UserId);
88 
89 #endif