sam3_dmac.h
Go to the documentation of this file.
00001 00038 #ifndef SAM3_DMAC_H 00039 #define SAM3_DMAC_H 00040 00042 #define DMAC_BASE 0x400C4000 00043 00044 #define DMAC_GCFG (*((reg32_t *)(DMAC_BASE + 0x000))) ///< Global Configuration Register. 00045 #define DMAC_EN (*((reg32_t *)(DMAC_BASE + 0x004))) ///< Enable Register. 00046 #define DMAC_SREQ (*((reg32_t *)(DMAC_BASE + 0x008))) ///< Software Single Request Register. 00047 #define DMAC_CREQ (*((reg32_t *)(DMAC_BASE + 0x00C))) ///< Software Chunk Transfer Request Register. 00048 #define DMAC_LAST (*((reg32_t *)(DMAC_BASE + 0x010))) ///< Software Last Transfer Flag Register. 00049 #define DMAC_EBCIER (*((reg32_t *)(DMAC_BASE + 0x018))) ///< Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Completed Interrupt Enable register. 00050 #define DMAC_EBCIDR (*((reg32_t *)(DMAC_BASE + 0x01C))) ///< Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Completed Interrupt Disable register. 00051 #define DMAC_EBCIMR (*((reg32_t *)(DMAC_BASE + 0x020))) ///< Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer completed Mask Register. 00052 #define DMAC_EBCISR (*((reg32_t *)(DMAC_BASE + 0x024))) ///< Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer completed Status Register. 00053 #define DMAC_CHER (*((reg32_t *)(DMAC_BASE + 0x028))) ///< Channel Handler Enable Register. 00054 #define DMAC_CHDR (*((reg32_t *)(DMAC_BASE + 0x02C))) ///< Channel Handler Disable Register. 00055 #define DMAC_CHSR (*((reg32_t *)(DMAC_BASE + 0x030))) ///< Channel Handler Status Register. 00056 #define DMAC_SADDR0 (*((reg32_t *)(DMAC_BASE + 0x03C))) ///< Channel Source Address Register (ch_num = 0). 00057 #define DMAC_DADDR0 (*((reg32_t *)(DMAC_BASE + 0x040))) ///< Channel Destination Address Register (ch_num = 0). 00058 #define DMAC_DSCR0 (*((reg32_t *)(DMAC_BASE + 0x044))) ///< Channel Descriptor Address Register (ch_num = 0). 00059 #define DMAC_CTRLA0 (*((reg32_t *)(DMAC_BASE + 0x048))) ///< Channel Control A Register (ch_num = 0). 00060 #define DMAC_CTRLB0 (*((reg32_t *)(DMAC_BASE + 0x04C))) ///< Channel Control B Register (ch_num = 0). 00061 #define DMAC_CFG0 (*((reg32_t *)(DMAC_BASE + 0x050))) ///< Channel Configuration Register (ch_num = 0). 00062 #define DMAC_SADDR1 (*((reg32_t *)(DMAC_BASE + 0x064))) ///< Channel Source Address Register (ch_num = 1). 00063 #define DMAC_DADDR1 (*((reg32_t *)(DMAC_BASE + 0x068))) ///< Channel Destination Address Register (ch_num = 1). 00064 #define DMAC_DSCR1 (*((reg32_t *)(DMAC_BASE + 0x06C))) ///< Channel Descriptor Address Register (ch_num = 1). 00065 #define DMAC_CTRLA1 (*((reg32_t *)(DMAC_BASE + 0x070))) ///< Channel Control A Register (ch_num = 1). 00066 #define DMAC_CTRLB1 (*((reg32_t *)(DMAC_BASE + 0x074))) ///< Channel Control B Register (ch_num = 1). 00067 #define DMAC_CFG1 (*((reg32_t *)(DMAC_BASE + 0x078))) ///< Channel Configuration Register (ch_num = 1). 00068 #define DMAC_SADDR2 (*((reg32_t *)(DMAC_BASE + 0x08C))) ///< Channel Source Address Register (ch_num = 2). 00069 #define DMAC_DADDR2 (*((reg32_t *)(DMAC_BASE + 0x090))) ///< Channel Destination Address Register (ch_num = 2). 00070 #define DMAC_DSCR2 (*((reg32_t *)(DMAC_BASE + 0x094))) ///< Channel Descriptor Address Register (ch_num = 2). 00071 #define DMAC_CTRLA2 (*((reg32_t *)(DMAC_BASE + 0x098))) ///< Channel Control A Register (ch_num = 2). 00072 #define DMAC_CTRLB2 (*((reg32_t *)(DMAC_BASE + 0x09C))) ///< Channel Control B Register (ch_num = 2). 00073 #define DMAC_CFG2 (*((reg32_t *)(DMAC_BASE + 0x0A0))) ///< Channel Configuration Register (ch_num = 2). 00074 #define DMAC_SADDR3 (*((reg32_t *)(DMAC_BASE + 0x0B4))) ///< Channel Source Address Register (ch_num = 3). 00075 #define DMAC_DADDR3 (*((reg32_t *)(DMAC_BASE + 0x0B8))) ///< Channel Destination Address Register (ch_num = 3). 00076 #define DMAC_DSCR3 (*((reg32_t *)(DMAC_BASE + 0x0BC))) ///< Channel Descriptor Address Register (ch_num = 3). 00077 #define DMAC_CTRLA3 (*((reg32_t *)(DMAC_BASE + 0x0C0))) ///< Channel Control A Register (ch_num = 3). 00078 #define DMAC_CTRLB3 (*((reg32_t *)(DMAC_BASE + 0x0C4))) ///< Channel Control B Register (ch_num = 3). 00079 #define DMAC_CFG3 (*((reg32_t *)(DMAC_BASE + 0x0C8))) ///< Channel Configuration Register (ch_num = 3). 00080 #define DMAC_SADDR4 (*((reg32_t *)(DMAC_BASE + 0x0DC))) ///< Channel Source Address Register (ch_num = 4). 00081 #define DMAC_DADDR4 (*((reg32_t *)(DMAC_BASE + 0x0E0))) ///< Channel Destination Address Register (ch_num = 4). 00082 #define DMAC_DSCR4 (*((reg32_t *)(DMAC_BASE + 0x0E4))) ///< Channel Descriptor Address Register (ch_num = 4). 00083 #define DMAC_CTRLA4 (*((reg32_t *)(DMAC_BASE + 0x0E8))) ///< Channel Control A Register (ch_num = 4). 00084 #define DMAC_CTRLB4 (*((reg32_t *)(DMAC_BASE + 0x0EC))) ///< Channel Control B Register (ch_num = 4). 00085 #define DMAC_CFG4 (*((reg32_t *)(DMAC_BASE + 0x0F0))) ///< Channel Configuration Register (ch_num = 4). 00086 #define DMAC_SADDR5 (*((reg32_t *)(DMAC_BASE + 0x104))) ///< Channel Source Address Register (ch_num = 5). 00087 #define DMAC_DADDR5 (*((reg32_t *)(DMAC_BASE + 0x108))) ///< Channel Destination Address Register (ch_num = 5). 00088 #define DMAC_DSCR5 (*((reg32_t *)(DMAC_BASE + 0x10C))) ///< Channel Descriptor Address Register (ch_num = 5). 00089 #define DMAC_CTRLA5 (*((reg32_t *)(DMAC_BASE + 0x110))) ///< Channel Control A Register (ch_num = 5). 00090 #define DMAC_CTRLB5 (*((reg32_t *)(DMAC_BASE + 0x114))) ///< Channel Control B Register (ch_num = 5). 00091 #define DMAC_CFG5 (*((reg32_t *)(DMAC_BASE + 0x118))) ///< Channel Configuration Register (ch_num = 5). 00092 #define DMAC_WPMR (*((reg32_t *)(DMAC_BASE + 0x1E4))) ///< Write Protect Mode Register. 00093 #define DMAC_WPSR (*((reg32_t *)(DMAC_BASE + 0x1E8))) ///< Write Protect Status Register. 00094 00095 00096 00097 00098 /* 00099 * DMAC_GCFG : (DMAC Offset: 0x000) DMAC Global Configuration Register 00100 */ 00101 #define DMAC_GCFG_ARB_CFG 4 ///< (DMAC_GCFG) Arbiter Configuration. 00102 00103 /* 00104 * DMAC_EN : (DMAC Offset: 0x004) DMAC Enable Register 00105 */ 00106 #define DMAC_EN_ENABLE 0 ///< (DMAC_EN). 00107 00108 /* 00109 * DMAC_SREQ : (DMAC Offset: 0x008) DMAC Software Single Request Register 00110 */ 00111 #define DMAC_SREQ_SSREQ0 0 ///< (DMAC_SREQ) Source Request. 00112 #define DMAC_SREQ_DSREQ0 1 ///< (DMAC_SREQ) Destination Request. 00113 #define DMAC_SREQ_SSREQ1 2 ///< (DMAC_SREQ) Source Request. 00114 #define DMAC_SREQ_DSREQ1 3 ///< (DMAC_SREQ) Destination Request. 00115 #define DMAC_SREQ_SSREQ2 4 ///< (DMAC_SREQ) Source Request. 00116 #define DMAC_SREQ_DSREQ2 5 ///< (DMAC_SREQ) Destination Request. 00117 #define DMAC_SREQ_SSREQ3 6 ///< (DMAC_SREQ) Source Request. 00118 #define DMAC_SREQ_DSREQ3 7 ///< (DMAC_SREQ) Destination Request. 00119 #define DMAC_SREQ_SSREQ4 8 ///< (DMAC_SREQ) Source Request. 00120 #define DMAC_SREQ_DSREQ4 9 ///< (DMAC_SREQ) Destination Request. 00121 #define DMAC_SREQ_SSREQ5 10 ///< (DMAC_SREQ) Source Request. 00122 #define DMAC_SREQ_DSREQ5 11 ///< (DMAC_SREQ) Destination Request. 00123 00124 /* 00125 * DMAC_CREQ : (DMAC Offset: 0x00C) DMAC Software Chunk Transfer Request Register 00126 */ 00127 #define DMAC_CREQ_SCREQ0 0 ///< (DMAC_CREQ) Source Chunk Request. 00128 #define DMAC_CREQ_DCREQ0 1 ///< (DMAC_CREQ) Destination Chunk Request. 00129 #define DMAC_CREQ_SCREQ1 2 ///< (DMAC_CREQ) Source Chunk Request. 00130 #define DMAC_CREQ_DCREQ1 3 ///< (DMAC_CREQ) Destination Chunk Request. 00131 #define DMAC_CREQ_SCREQ2 4 ///< (DMAC_CREQ) Source Chunk Request. 00132 #define DMAC_CREQ_DCREQ2 5 ///< (DMAC_CREQ) Destination Chunk Request. 00133 #define DMAC_CREQ_SCREQ3 6 ///< (DMAC_CREQ) Source Chunk Request. 00134 #define DMAC_CREQ_DCREQ3 7 ///< (DMAC_CREQ) Destination Chunk Request. 00135 #define DMAC_CREQ_SCREQ4 8 ///< (DMAC_CREQ) Source Chunk Request. 00136 #define DMAC_CREQ_DCREQ4 9 ///< (DMAC_CREQ) Destination Chunk Request. 00137 #define DMAC_CREQ_SCREQ5 10 ///< (DMAC_CREQ) Source Chunk Request. 00138 #define DMAC_CREQ_DCREQ5 11 ///< (DMAC_CREQ) Destination Chunk Request. 00139 00140 /* 00141 * DMAC_LAST : (DMAC Offset: 0x010) DMAC Software Last Transfer Flag Register 00142 */ 00143 #define DMAC_LAST_SLAST0 0 ///< (DMAC_LAST) Source Last. 00144 #define DMAC_LAST_DLAST0 1 ///< (DMAC_LAST) Destination Last. 00145 #define DMAC_LAST_SLAST1 2 ///< (DMAC_LAST) Source Last. 00146 #define DMAC_LAST_DLAST1 3 ///< (DMAC_LAST) Destination Last. 00147 #define DMAC_LAST_SLAST2 4 ///< (DMAC_LAST) Source Last. 00148 #define DMAC_LAST_DLAST2 5 ///< (DMAC_LAST) Destination Last. 00149 #define DMAC_LAST_SLAST3 6 ///< (DMAC_LAST) Source Last. 00150 #define DMAC_LAST_DLAST3 7 ///< (DMAC_LAST) Destination Last. 00151 #define DMAC_LAST_SLAST4 8 ///< (DMAC_LAST) Source Last. 00152 #define DMAC_LAST_DLAST4 9 ///< (DMAC_LAST) Destination Last. 00153 #define DMAC_LAST_SLAST5 10 ///< (DMAC_LAST) Source Last. 00154 #define DMAC_LAST_DLAST5 11 ///< (DMAC_LAST) Destination Last. 00155 00156 /* 00157 * DMAC_EBCIER : (DMAC Offset: 0x018) DMAC Error, 00158 * Chained Buffer Transfer Completed Interrupt and Buffer Transfer Completed Interrupt Enable register. 00159 */ 00160 #define DMAC_EBCIER_BTC0 0 ///< (DMAC_EBCIER) Buffer Transfer Completed [5:0]. 00161 #define DMAC_EBCIER_BTC1 1 ///< (DMAC_EBCIER) Buffer Transfer Completed [5:0]. 00162 #define DMAC_EBCIER_BTC2 2 ///< (DMAC_EBCIER) Buffer Transfer Completed [5:0]. 00163 #define DMAC_EBCIER_BTC3 3 ///< (DMAC_EBCIER) Buffer Transfer Completed [5:0]. 00164 #define DMAC_EBCIER_BTC4 4 ///< (DMAC_EBCIER) Buffer Transfer Completed [5:0]. 00165 #define DMAC_EBCIER_BTC5 5 ///< (DMAC_EBCIER) Buffer Transfer Completed [5:0]. 00166 #define DMAC_EBCIER_CBTC0 8 ///< (DMAC_EBCIER) Chained Buffer Transfer Completed [5:0]. 00167 #define DMAC_EBCIER_CBTC1 9 ///< (DMAC_EBCIER) Chained Buffer Transfer Completed [5:0]. 00168 #define DMAC_EBCIER_CBTC2 10 ///< (DMAC_EBCIER) Chained Buffer Transfer Completed [5:0]. 00169 #define DMAC_EBCIER_CBTC3 11 ///< (DMAC_EBCIER) Chained Buffer Transfer Completed [5:0]. 00170 #define DMAC_EBCIER_CBTC4 12 ///< (DMAC_EBCIER) Chained Buffer Transfer Completed [5:0]. 00171 #define DMAC_EBCIER_CBTC5 13 ///< (DMAC_EBCIER) Chained Buffer Transfer Completed [5:0]. 00172 #define DMAC_EBCIER_ERR0 16 ///< (DMAC_EBCIER) Access Error [5:0]. 00173 #define DMAC_EBCIER_ERR1 17 ///< (DMAC_EBCIER) Access Error [5:0]. 00174 #define DMAC_EBCIER_ERR2 18 ///< (DMAC_EBCIER) Access Error [5:0]. 00175 #define DMAC_EBCIER_ERR3 19 ///< (DMAC_EBCIER) Access Error [5:0]. 00176 #define DMAC_EBCIER_ERR4 20 ///< (DMAC_EBCIER) Access Error [5:0]. 00177 #define DMAC_EBCIER_ERR5 21 ///< (DMAC_EBCIER) Access Error [5:0]. 00178 00179 /* DMAC_EBCIDR : (DMAC Offset: 0x01C) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Completed Interrupt Disable register.*/ 00180 #define DMAC_EBCIDR_BTC0 0 ///< (DMAC_EBCIDR) Buffer Transfer Completed [5:0]. 00181 #define DMAC_EBCIDR_BTC1 1 ///< (DMAC_EBCIDR) Buffer Transfer Completed [5:0]. 00182 #define DMAC_EBCIDR_BTC2 2 ///< (DMAC_EBCIDR) Buffer Transfer Completed [5:0]. 00183 #define DMAC_EBCIDR_BTC3 3 ///< (DMAC_EBCIDR) Buffer Transfer Completed [5:0]. 00184 #define DMAC_EBCIDR_BTC4 4 ///< (DMAC_EBCIDR) Buffer Transfer Completed [5:0]. 00185 #define DMAC_EBCIDR_BTC5 5 ///< (DMAC_EBCIDR) Buffer Transfer Completed [5:0]. 00186 #define DMAC_EBCIDR_CBTC0 8 ///< (DMAC_EBCIDR) Chained Buffer Transfer Completed [5:0]. 00187 #define DMAC_EBCIDR_CBTC1 9 ///< (DMAC_EBCIDR) Chained Buffer Transfer Completed [5:0]. 00188 #define DMAC_EBCIDR_CBTC2 10 ///< (DMAC_EBCIDR) Chained Buffer Transfer Completed [5:0]. 00189 #define DMAC_EBCIDR_CBTC3 11 ///< (DMAC_EBCIDR) Chained Buffer Transfer Completed [5:0]. 00190 #define DMAC_EBCIDR_CBTC4 12 ///< (DMAC_EBCIDR) Chained Buffer Transfer Completed [5:0]. 00191 #define DMAC_EBCIDR_CBTC5 13 ///< (DMAC_EBCIDR) Chained Buffer Transfer Completed [5:0]. 00192 #define DMAC_EBCIDR_ERR0 16 ///< (DMAC_EBCIDR) Access Error [5:0]. 00193 #define DMAC_EBCIDR_ERR1 17 ///< (DMAC_EBCIDR) Access Error [5:0]. 00194 #define DMAC_EBCIDR_ERR2 18 ///< (DMAC_EBCIDR) Access Error [5:0]. 00195 #define DMAC_EBCIDR_ERR3 19 ///< (DMAC_EBCIDR) Access Error [5:0]. 00196 #define DMAC_EBCIDR_ERR4 20 ///< (DMAC_EBCIDR) Access Error [5:0]. 00197 #define DMAC_EBCIDR_ERR5 21 ///< (DMAC_EBCIDR) Access Error [5:0]. 00198 00199 /* DMAC_EBCIMR : (DMAC Offset: 0x020) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer completed Mask Register.*/ 00200 #define DMAC_EBCIMR_BTC0 0 ///< (DMAC_EBCIMR) Buffer Transfer Completed [5:0]. 00201 #define DMAC_EBCIMR_BTC1 1 ///< (DMAC_EBCIMR) Buffer Transfer Completed [5:0]. 00202 #define DMAC_EBCIMR_BTC2 2 ///< (DMAC_EBCIMR) Buffer Transfer Completed [5:0]. 00203 #define DMAC_EBCIMR_BTC3 3 ///< (DMAC_EBCIMR) Buffer Transfer Completed [5:0]. 00204 #define DMAC_EBCIMR_BTC4 4 ///< (DMAC_EBCIMR) Buffer Transfer Completed [5:0]. 00205 #define DMAC_EBCIMR_BTC5 5 ///< (DMAC_EBCIMR) Buffer Transfer Completed [5:0]. 00206 #define DMAC_EBCIMR_CBTC0 8 ///< (DMAC_EBCIMR) Chained Buffer Transfer Completed [5:0]. 00207 #define DMAC_EBCIMR_CBTC1 9 ///< (DMAC_EBCIMR) Chained Buffer Transfer Completed [5:0]. 00208 #define DMAC_EBCIMR_CBTC2 10 ///< (DMAC_EBCIMR) Chained Buffer Transfer Completed [5:0]. 00209 #define DMAC_EBCIMR_CBTC3 11 ///< (DMAC_EBCIMR) Chained Buffer Transfer Completed [5:0]. 00210 #define DMAC_EBCIMR_CBTC4 12 ///< (DMAC_EBCIMR) Chained Buffer Transfer Completed [5:0]. 00211 #define DMAC_EBCIMR_CBTC5 13 ///< (DMAC_EBCIMR) Chained Buffer Transfer Completed [5:0]. 00212 #define DMAC_EBCIMR_ERR0 16 ///< (DMAC_EBCIMR) Access Error [5:0]. 00213 #define DMAC_EBCIMR_ERR1 17 ///< (DMAC_EBCIMR) Access Error [5:0]. 00214 #define DMAC_EBCIMR_ERR2 18 ///< (DMAC_EBCIMR) Access Error [5:0]. 00215 #define DMAC_EBCIMR_ERR3 19 ///< (DMAC_EBCIMR) Access Error [5:0]. 00216 #define DMAC_EBCIMR_ERR4 20 ///< (DMAC_EBCIMR) Access Error [5:0]. 00217 #define DMAC_EBCIMR_ERR5 21 ///< (DMAC_EBCIMR) Access Error [5:0]. 00218 00219 /* DMAC_EBCISR : (DMAC Offset: 0x024) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer completed Status Register.*/ 00220 #define DMAC_EBCISR_BTC0 0 ///< (DMAC_EBCISR) Buffer Transfer Completed [5:0]. 00221 #define DMAC_EBCISR_BTC1 1 ///< (DMAC_EBCISR) Buffer Transfer Completed [5:0]. 00222 #define DMAC_EBCISR_BTC2 2 ///< (DMAC_EBCISR) Buffer Transfer Completed [5:0]. 00223 #define DMAC_EBCISR_BTC3 3 ///< (DMAC_EBCISR) Buffer Transfer Completed [5:0]. 00224 #define DMAC_EBCISR_BTC4 4 ///< (DMAC_EBCISR) Buffer Transfer Completed [5:0]. 00225 #define DMAC_EBCISR_BTC5 5 ///< (DMAC_EBCISR) Buffer Transfer Completed [5:0]. 00226 #define DMAC_EBCISR_CBTC0 8 ///< (DMAC_EBCISR) Chained Buffer Transfer Completed [5:0]. 00227 #define DMAC_EBCISR_CBTC1 9 ///< (DMAC_EBCISR) Chained Buffer Transfer Completed [5:0]. 00228 #define DMAC_EBCISR_CBTC2 10 ///< (DMAC_EBCISR) Chained Buffer Transfer Completed [5:0]. 00229 #define DMAC_EBCISR_CBTC3 11 ///< (DMAC_EBCISR) Chained Buffer Transfer Completed [5:0]. 00230 #define DMAC_EBCISR_CBTC4 12 ///< (DMAC_EBCISR) Chained Buffer Transfer Completed [5:0]. 00231 #define DMAC_EBCISR_CBTC5 13 ///< (DMAC_EBCISR) Chained Buffer Transfer Completed [5:0]. 00232 #define DMAC_EBCISR_ERR0 16 ///< (DMAC_EBCISR) Access Error [5:0]. 00233 #define DMAC_EBCISR_ERR1 17 ///< (DMAC_EBCISR) Access Error [5:0]. 00234 #define DMAC_EBCISR_ERR2 18 ///< (DMAC_EBCISR) Access Error [5:0]. 00235 #define DMAC_EBCISR_ERR3 19 ///< (DMAC_EBCISR) Access Error [5:0]. 00236 #define DMAC_EBCISR_ERR4 20 ///< (DMAC_EBCISR) Access Error [5:0]. 00237 #define DMAC_EBCISR_ERR5 21 ///< (DMAC_EBCISR) Access Error [5:0]. 00238 00239 /* DMAC_CHER : (DMAC Offset: 0x028) DMAC Channel Handler Enable Register*/ 00240 #define DMAC_CHER_ENA0 0 ///< (DMAC_CHER) Enable [5:0]. 00241 #define DMAC_CHER_ENA1 1 ///< (DMAC_CHER) Enable [5:0]. 00242 #define DMAC_CHER_ENA2 2 ///< (DMAC_CHER) Enable [5:0]. 00243 #define DMAC_CHER_ENA3 3 ///< (DMAC_CHER) Enable [5:0]. 00244 #define DMAC_CHER_ENA4 4 ///< (DMAC_CHER) Enable [5:0]. 00245 #define DMAC_CHER_ENA5 5 ///< (DMAC_CHER) Enable [5:0]. 00246 #define DMAC_CHER_SUSP0 8 ///< (DMAC_CHER) Suspend [5:0]. 00247 #define DMAC_CHER_SUSP1 9 ///< (DMAC_CHER) Suspend [5:0]. 00248 #define DMAC_CHER_SUSP2 10 ///< (DMAC_CHER) Suspend [5:0]. 00249 #define DMAC_CHER_SUSP3 11 ///< (DMAC_CHER) Suspend [5:0]. 00250 #define DMAC_CHER_SUSP4 12 ///< (DMAC_CHER) Suspend [5:0]. 00251 #define DMAC_CHER_SUSP5 13 ///< (DMAC_CHER) Suspend [5:0]. 00252 #define DMAC_CHER_KEEP0 24 ///< (DMAC_CHER) Keep on [5:0]. 00253 #define DMAC_CHER_KEEP1 25 ///< (DMAC_CHER) Keep on [5:0]. 00254 #define DMAC_CHER_KEEP2 26 ///< (DMAC_CHER) Keep on [5:0]. 00255 #define DMAC_CHER_KEEP3 27 ///< (DMAC_CHER) Keep on [5:0]. 00256 #define DMAC_CHER_KEEP4 28 ///< (DMAC_CHER) Keep on [5:0]. 00257 #define DMAC_CHER_KEEP5 29 ///< (DMAC_CHER) Keep on [5:0]. 00258 00259 /* DMAC_CHDR : (DMAC Offset: 0x02C) DMAC Channel Handler Disable Register*/ 00260 #define DMAC_CHDR_DIS0 0 ///< (DMAC_CHDR) Disable [5:0]. 00261 #define DMAC_CHDR_DIS1 1 ///< (DMAC_CHDR) Disable [5:0]. 00262 #define DMAC_CHDR_DIS2 2 ///< (DMAC_CHDR) Disable [5:0]. 00263 #define DMAC_CHDR_DIS3 3 ///< (DMAC_CHDR) Disable [5:0]. 00264 #define DMAC_CHDR_DIS4 4 ///< (DMAC_CHDR) Disable [5:0]. 00265 #define DMAC_CHDR_DIS5 5 ///< (DMAC_CHDR) Disable [5:0]. 00266 #define DMAC_CHDR_RES0 8 ///< (DMAC_CHDR) Resume [5:0]. 00267 #define DMAC_CHDR_RES1 9 ///< (DMAC_CHDR) Resume [5:0]. 00268 #define DMAC_CHDR_RES2 10 ///< (DMAC_CHDR) Resume [5:0]. 00269 #define DMAC_CHDR_RES3 11 ///< (DMAC_CHDR) Resume [5:0]. 00270 #define DMAC_CHDR_RES4 12 ///< (DMAC_CHDR) Resume [5:0]. 00271 #define DMAC_CHDR_RES5 13 ///< (DMAC_CHDR) Resume [5:0]. 00272 00273 /* DMAC_CHSR : (DMAC Offset: 0x030) DMAC Channel Handler Status Register*/ 00274 #define DMAC_CHSR_EN_MASK 0x31 ///< 00275 #define DMAC_CHSR_ENA0 0 ///< (DMAC_CHSR) Enable [5:0]. 00276 #define DMAC_CHSR_ENA1 1 ///< (DMAC_CHSR) Enable [5:0]. 00277 #define DMAC_CHSR_ENA2 2 ///< (DMAC_CHSR) Enable [5:0]. 00278 #define DMAC_CHSR_ENA3 3 ///< (DMAC_CHSR) Enable [5:0]. 00279 #define DMAC_CHSR_ENA4 4 ///< (DMAC_CHSR) Enable [5:0]. 00280 #define DMAC_CHSR_ENA5 5 ///< (DMAC_CHSR) Enable [5:0]. 00281 #define DMAC_CHSR_SUSP0 8 ///< (DMAC_CHSR) Suspend [5:0]. 00282 #define DMAC_CHSR_SUSP1 9 ///< (DMAC_CHSR) Suspend [5:0]. 00283 #define DMAC_CHSR_SUSP2 10 ///< (DMAC_CHSR) Suspend [5:0]. 00284 #define DMAC_CHSR_SUSP3 11 ///< (DMAC_CHSR) Suspend [5:0]. 00285 #define DMAC_CHSR_SUSP4 12 ///< (DMAC_CHSR) Suspend [5:0]. 00286 #define DMAC_CHSR_SUSP5 13 ///< (DMAC_CHSR) Suspend [5:0]. 00287 #define DMAC_CHSR_EMPT0 16 ///< (DMAC_CHSR) Empty [5:0]. 00288 #define DMAC_CHSR_EMPT1 17 ///< (DMAC_CHSR) Empty [5:0]. 00289 #define DMAC_CHSR_EMPT2 18 ///< (DMAC_CHSR) Empty [5:0]. 00290 #define DMAC_CHSR_EMPT3 19 ///< (DMAC_CHSR) Empty [5:0]. 00291 #define DMAC_CHSR_EMPT4 20 ///< (DMAC_CHSR) Empty [5:0]. 00292 #define DMAC_CHSR_EMPT5 21 ///< (DMAC_CHSR) Empty [5:0]. 00293 #define DMAC_CHSR_STAL0 24 ///< (DMAC_CHSR) Stalled [5:0]. 00294 #define DMAC_CHSR_STAL1 25 ///< (DMAC_CHSR) Stalled [5:0]. 00295 #define DMAC_CHSR_STAL2 26 ///< (DMAC_CHSR) Stalled [5:0]. 00296 #define DMAC_CHSR_STAL3 27 ///< (DMAC_CHSR) Stalled [5:0]. 00297 #define DMAC_CHSR_STAL4 28 ///< (DMAC_CHSR) Stalled [5:0]. 00298 #define DMAC_CHSR_STAL5 29 ///< (DMAC_CHSR) Stalled [5:0]. 00299 00300 /* DMAC_CTRLA : (DMAC Offset: N/A) DMAC Channel Control A Register*/ 00301 #define DMAC_CTRLA_BTSIZE_MASK 0xffff ///< (DMAC_CTRLA) Buffer Transfer Size. 00302 #define DMAC_CTRLA_SCSIZE_MASK 0x70000 ///< (DMAC_CTRLA) Source Chunk Transfer Size.. 00303 #define DMAC_CTRLA_SCSIZE_CHK_1 0x00000 ///< (DMAC_CTRLA) 1 data transferred. 00304 #define DMAC_CTRLA_SCSIZE_CHK_4 0x10000 ///< (DMAC_CTRLA) 4 data transferred. 00305 #define DMAC_CTRLA_SCSIZE_CHK_8 0x20000 ///< (DMAC_CTRLA) 8 data transferred. 00306 #define DMAC_CTRLA_SCSIZE_CHK_16 0x30000 ///< (DMAC_CTRLA) 16 data transferred. 00307 #define DMAC_CTRLA_SCSIZE_CHK_32 0x40000 ///< (DMAC_CTRLA) 32 data transferred. 00308 #define DMAC_CTRLA_SCSIZE_CHK_64 0x50000 ///< (DMAC_CTRLA) 64 data transferred. 00309 #define DMAC_CTRLA_SCSIZE_CHK_128 0x60000 ///< (DMAC_CTRLA) 128 data transferred. 00310 #define DMAC_CTRLA_SCSIZE_CHK_256 0x70000 ///< (DMAC_CTRLA) 256 data transferred. 00311 #define DMAC_CTRLA_DCSIZE_MASK 0x700000 ///< (DMAC_CTRLA) Destination Chunk Transfer Size. 00312 #define DMAC_CTRLA_DCSIZE_CHK_1 0x000000 ///< (DMAC_CTRLA) 1 data transferred. 00313 #define DMAC_CTRLA_DCSIZE_CHK_4 0x100000 ///< (DMAC_CTRLA) 4 data transferred. 00314 #define DMAC_CTRLA_DCSIZE_CHK_8 0x200000 ///< (DMAC_CTRLA) 8 data transferred. 00315 #define DMAC_CTRLA_DCSIZE_CHK_16 0x300000 ///< (DMAC_CTRLA) 16 data transferred. 00316 #define DMAC_CTRLA_DCSIZE_CHK_32 0x400000 ///< (DMAC_CTRLA) 32 data transferred. 00317 #define DMAC_CTRLA_DCSIZE_CHK_64 0x500000 ///< (DMAC_CTRLA) 64 data transferred. 00318 #define DMAC_CTRLA_DCSIZE_CHK_128 0x600000 ///< (DMAC_CTRLA) 128 data transferred. 00319 #define DMAC_CTRLA_DCSIZE_CHK_256 0x700000 ///< (DMAC_CTRLA) 256 data transferred. 00320 #define DMAC_CTRLA_SRC_WIDTH_MASK 0x3000000 ///< (DMAC_CTRLA) Transfer Width for the Source. 00321 #define DMAC_CTRLA_SRC_WIDTH_BYTE 0x0000000 ///< (DMAC_CTRLA) the transfer size is set to 8-bit width. 00322 #define DMAC_CTRLA_SRC_WIDTH_HALF_WORD 0x1000000///< (DMAC_CTRLA) the transfer size is set to 16-bit width. 00323 #define DMAC_CTRLA_SRC_WIDTH_WORD 0x2000000 ///< (DMAC_CTRLA) the transfer size is set to 32-bit width. 00324 #define DMAC_CTRLA_DST_WIDTH_MASK 0x30000000 ///< (DMAC_CTRLA) Transfer Width for the Destination. 00325 #define DMAC_CTRLA_DST_WIDTH_BYTE 0x00000000 ///< (DMAC_CTRLA) the transfer size is set to 8-bit width. 00326 #define DMAC_CTRLA_DST_WIDTH_HALF_WORD 0x10000000///< (DMAC_CTRLA) the transfer size is set to 16-bit width. 00327 #define DMAC_CTRLA_DST_WIDTH_WORD 0x20000000 ///< (DMAC_CTRLA) the transfer size is set to 32-bit width. 00328 #define DMAC_CTRLA_DONE 31 ///< (DMAC_CTRLA) . 00329 00330 /* DMAC_CTRLB : (DMAC Offset: N/A) DMAC Channel Control B Register*/ 00331 #define DMAC_CTRLB_SRC_DSCR 16 ///< (DMAC_CTRLB) Source Address Descriptor. 00332 #define DMAC_CTRLB_DST_DSCR 20 ///< (DMAC_CTRLB) Destination Address Descriptor. 00333 #define DMAC_CTRLB_FC_MASK 0xE00000 ///< (DMAC_CTRLB) Flow Control. 00334 #define DMAC_CTRLB_FC_MEM2MEM_DMA_FC 0 ///< (DMAC_CTRLB) Memory-to-Memory Transfer DMAC is flow controller. 00335 #define DMAC_CTRLB_FC_MEM2PER_DMA_FC 0x200000 ///< (DMAC_CTRLB) Memory-to-Peripheral Transfer DMAC is flow controller. 00336 #define DMAC_CTRLB_FC_PER2MEM_DMA_FC 0x400000 ///< (DMAC_CTRLB) Peripheral-to-Memory Transfer DMAC is flow controller. 00337 #define DMAC_CTRLB_FC_PER2PER_DMA_FC 0x600000 ///< (DMAC_CTRLB) Peripheral-to-Peripheral Transfer DMAC is flow controller. 00338 #define DMAC_CTRLB_SRC_INCR_MASK 0x3000000 ///< (DMAC_CTRLB) Incrementing, Decrementing or Fixed Address for the Source. 00339 #define DMAC_CTRLB_SRC_INCR_INCREMENTING 0 ///< (DMAC_CTRLB) The source address is incremented. 00340 #define DMAC_CTRLB_SRC_INCR_DECREMENTING 0x1000000 ///< (DMAC_CTRLB) The source address is decremented. 00341 #define DMAC_CTRLB_SRC_INCR_FIXED 0x2000000 ///< (DMAC_CTRLB) The source address remains unchanged. 00342 #define DMAC_CTRLB_DST_INCR_MASK 0x30000000 ///< (DMAC_CTRLB) Incrementing, Decrementing or Fixed Address for the Destination. 00343 #define DMAC_CTRLB_DST_INCR_INCREMENTING 0 ///< (DMAC_CTRLB) The destination address is incremented. 00344 #define DMAC_CTRLB_DST_INCR_DECREMENTING 0x10000000 ///< (DMAC_CTRLB) The destination address is decremented. 00345 #define DMAC_CTRLB_DST_INCR_FIXED 0x20000000 ///< (DMAC_CTRLB) The destination address remains unchanged. 00346 #define DMAC_CTRLB_IEN 30 ///< (DMAC_CTRLB). 00347 00348 /* DMAC_CFG : (DMAC Offset: N/A) DMAC Channel Configuration Register*/ 00349 #define DMAC_CFG_SRC_PER_MASK 0xf ///< (DMAC_CFG) Source with Peripheral identifier. 00350 #define DMAC_CFG_DST_PER_MASK 0xf0 ///< (DMAC_CFG) Destination with Peripheral identifier. 00351 #define DMAC_CFG_DST_PER_SHIFT 4 ///< (DMAC_CFG) Destination with Peripheral identifier. 00352 #define DMAC_CFG_SRC_H2SEL 9 ///< (DMAC_CFG) Software or Hardware Selection for the Source. 00353 #define DMAC_CFG_DST_H2SEL 13 ///< (DMAC_CFG) Software or Hardware Selection for the Destination. 00354 #define DMAC_CFG_SOD 16 ///< (DMAC_CFG) Stop On Done. 00355 #define DMAC_CFG_LOCK_IF 20 ///< (DMAC_CFG) Interface Lock. 00356 #define DMAC_CFG_LOCK_B 21 ///< (DMAC_CFG) Bus Lock. 00357 #define DMAC_CFG_LOCK_IF_L 22 ///< (DMAC_CFG) Master Interface Arbiter Lock. 00358 #define DMAC_CFG_AHB_PROT_SHIFT 24 ///< (DMAC_CFG) AHB Protection. 00359 #define DMAC_CFG_AHB_PROT_MASK 0x7000000 ///< (DMAC_CFG) AHB Protection. 00360 #define DMAC_CFG_FIFOCFG_MASK 0x70000000 ///< (DMAC_CFG) FIFO Configuration. 00361 #define DMAC_CFG_FIFOCFG_ALAP_CFG 0x00000000 ///< (DMAC_CFG) The largest defined length AHB burst is performed on the destination AHB interface.. 00362 #define DMAC_CFG_FIFOCFG_HALF_CFG 0x10000000 ///< (DMAC_CFG) When half FIFO size is available/filled, a source/destination request is serviced.. 00363 #define DMAC_CFG_FIFOCFG_ASAP_CFG 0x20000000 ///< (DMAC_CFG) When there is enough space/data available to perform a single AHB access, then the request is serviced.. 00364 /* DMAC_WPMR : (DMAC Offset: 0x1E4) DMAC Write Protect Mode Register*/ 00365 #define DMAC_WPMR_WPEN 0 ///< (DMAC_WPMR) Write Protect Enable. 00366 #define DMAC_WPMR_WPKEY_MASK 0xFFFFFF00 ///< (DMAC_WPMR) Write Protect KEY. 00367 00368 /* DMAC_WPSR : (DMAC Offset: 0x1E8) DMAC Write Protect Status Register*/ 00369 #define DMAC_WPSR_WPVS 0 ///< (DMAC_WPSR) Write Protect Violation Status. 00370 #define DMAC_WPSR_WPVSRC_MASK 0x00FFFF00 ///< (DMAC_WPSR) Write Protect Violation Source. 00371 00372 00373 #endif /* SAM3_DMAC_H */ 00374
![(please configure the [header_logo] section in trac.ini)](/chrome/site/bertos_logo.png)