MODDMA GPDMA Controller New features: transfer pins to memory buffer under periodic timer control and send double buffers to DAC

Dependents:   FirstTest WaveSim IO-dma-memmem DACDMAfuncgenlib ... more

Revision:
12:1dfee7208043
Parent:
8:cb4d323ce6fd
Child:
16:cb10aec6feb1
--- a/MODDMA.h	Sun Mar 13 12:46:55 2011 +0000
+++ b/MODDMA.h	Sun Mar 13 23:28:21 2011 +0000
@@ -64,6 +64,7 @@
     uint32_t SrcConn;           //!< Peripheral Source Connection type, used in case TransferType is chosen as
     uint32_t DstConn;           //!< Peripheral Destination Connection type, used in case TransferType is chosen as
     uint32_t DMALLI;            //!< Linker List Item structure data address if there's no Linker List, set as '0'
+    uint32_t DMACSync;          //!< DMACSync if required.
     
     // Mbed specifics.
 
@@ -81,6 +82,7 @@
         SrcConn       = 0;
         DstConn       = 0;
         DMALLI        = 0;
+        DMACSync      = 0;
     }
     
     ~MODDMA_Config() {
@@ -97,6 +99,7 @@
     class MODDMA_Config * srcConn(uint32_t n)       { SrcConn = n;           return this; }
     class MODDMA_Config * dstConn(uint32_t n)       { DstConn = n;           return this; }
     class MODDMA_Config * dmaLLI(uint32_t n)        { DMALLI = n;            return this; }
+    class MODDMA_Config * dmacSync(uint32_t n)      { DMACSync = n;          return this; }
     
     uint32_t channelNum(void)    { return ChannelNum;    }
     uint32_t transferSize(void)  { return TransferSize;  }
@@ -107,7 +110,8 @@
     uint32_t srcConn(void)       { return SrcConn;       }
     uint32_t dstConn(void)       { return DstConn;       }
     uint32_t dmaLLI(void)        { return DMALLI;        }
-
+    uint32_t dmacSync(void)      { return DMACSync; }
+    
     /**
      * Attach a callback to the TC IRQ configuration.
      *
@@ -306,7 +310,9 @@
           m2m = 0UL     /*!< Memory to memory - DMA control */
         , m2p = 1UL     /*!< Memory to peripheral - DMA control */
         , p2m = 2UL     /*!< Peripheral to memory - DMA control */
-        , p2p = 3UL     /*!< Src peripheral to dest peripheral - DMA control */        
+        , p2p = 3UL     /*!< Src peripheral to dest peripheral - DMA control */         
+        , g2m = 4UL     /*!< Psuedo special case for reading "peripheral GPIO" that's memory mapped. */
+        , m2g = 5UL     /*!< Psuedo Special case for writing "peripheral GPIO" that's memory mapped. */
     };   
 
     //! Burst size in Source and Destination definitions */
@@ -651,13 +657,15 @@
      */
     FunctionPointer isrIntErrStat;                        
     
+    uint32_t Channel_p(int channel);
+    
 protected:
    
     // Data LUTs.
     uint32_t LUTPerAddr(int n);
     uint8_t  LUTPerBurst(int n);
     uint8_t  LUTPerWid(int n);    
-    uint32_t Channel_p(int channel);
+    //uint32_t Channel_p(int channel);
     
     CHANNELS IrqProcessingChannel;