BOOTLOADER
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
dma0.h
Go to the documentation of this file.
1 #ifndef DMA0_H
2 #define DMA0_H
3 
4 #define DMA0_nXDREQ0 0
5 #define DMA0_UART0 1
6 #define DMA0_SDI 2
7 #define DMA0_TIMER 3
8 #define DMA0_USBD_EP1 4
9 
10 #define DMA0_TRIGGER_HW 0
11 #define DMA0_TRIGGER_SW 1
12 
13 // DISRCC, DIDSTC parameters
14 #define DMA0_SRC_LOC_APB 0x02
15 #define DMA0_SRC_LOC_AHB 0x00
16 #define DMA0_SRC_ADDR_FIXED 0x01
17 #define DMA0_SRC_ADDR_INC 0x00
18 #define DMA0_DST_LOC_APB 0x02
19 #define DMA0_DST_LOC_AHB 0x00
20 #define DMA0_DST_ADDR_FIXED 0x01
21 #define DMA0_DST_ADDR_INC 0x00
22 // DCON paramaters
23 #define DMA0_HANDSHAKE_MODE 0x80000000 //[31]
24 #define DMA0_DEMAND_MODE 0x00000000
25 #define DMA0_SYNC_AHB 0x40000000 //[30]
26 #define DMA0_SYNC_APB 0x00000000
27 #define DMA0_DONE_GEN_INT 0x20000000 //[29]
28 #define DMA0_DONE_NO_INT 0x00000000
29 #define DMA0_TSZ_BURST 0x10000000 //[28]
30 #define DMA0_TSZ_UNIT 0x00000000
31 #define DMA0_WHOLE_SVC 0x08000000 //[27]
32 #define DMA0_SINGLE_SVC 0x00000000
33 #define DMA0_HW_TRIG 0x00800000 //[23]
34 #define DMA0_SW_TRIG 0x00000000
35 #define DMA0_RELOAD_OFF 0x00400000 //[22]
36 #define DMA0_RELOAD_ON 0x00000000
37 #define DMA0_DSZ_8b 0x00000000
38 #define DMA0_DSZ_16b 0x00100000
39 #define DMA0_DSZ_32b 0x00200000 //[21:20]
40 
41 typedef struct{ //can't use __packed???
42  volatile U32 DISRC; //0x0
43  volatile U32 DISRCC; //0x4
44  volatile U32 DIDST; //0x8
45  volatile U32 DIDSTC; //0xc
46  volatile U32 DCON; //0x10
47  volatile U32 DSTAT; //0x14
48  volatile U32 DCSRC; //0x18
49  volatile U32 DCDST; //0x1c
50  volatile U32 DMASKTRIG; //0x20
52 
53 typedef struct{
65 
66 extern DMA0_CONTROL Dma0Ctrl;
67 
68 extern void F_Dma0Init(void);
69 extern void F_Dma0Svc(void);
70 extern INT8U F_Dma0InUseCheck(void);
71 extern INT8U F_Dma0Allocate(INT16U UserId);
72 extern INT8U F_Dma0Release(INT16U UserId);
73 extern INT8U F_Dma0Reset(INT16U UserId);
74 extern INT8U F_Dma0Request(INT16U UserId);
75 extern INT8U F_Dma0Start(INT16U UserId);
76 extern INT8U F_Dma0Stop(INT16U UserId);
77 extern INT8U F_Dma0Run(INT16U UserId);
78 extern INT8U F_Dma0DisrcSet(INT16U UserId,INT32U InitialSource);
79 extern INT8U F_Dma0DidstSet(INT16U UserId,INT32U InitialDestination);
80 extern INT8U F_Dma0DisrccSet(INT16U UserId,INT32U InitialSourceCtrl);
81 extern INT8U F_Dma0DidstcSet(INT16U UserId,INT32U InitialDestinationCtrl);
82 extern INT8U F_Dma0DconSet(INT16U UserId,INT32U DmaControl);
83 extern INT8U F_Dma0LengthSet(INT16U UserId,INT32U Length);
84 extern INT8U F_Dma0TriggerModeSet(INT16U UserId,INT8U TriggerMode);
85 extern INT32U F_Dma0StatusRegisterGet(void);
86 extern INT8U F_Dma0IsrHookFunctionSet(INT16U UserId,INT32U Function);
87 extern INT8U F_Dma0DisrcSetIsr(INT16U UserId,INT32U InitialSource);
88 extern INT8U F_Dma0DidstSetIsr(INT16U UserId,INT32U InitialDestination);
89 extern INT8U F_Dma0LengthSetIsr(INT16U UserId,INT32U Length);
90 extern INT8U F_Dma0StartIsr(INT16U UserId);
91 
92 #endif