Fork of Andy Kirkham's MODDMA GPDMA Controller for Mbed OS 6

Read MODDMA for more info.

Revision:
19:bf3ae4c3635d
Parent:
12:1dfee7208043
--- a/example1.h	Sat Dec 10 09:59:10 2022 +0000
+++ b/example1.h	Mon Dec 12 15:05:21 2022 +0000
@@ -1,81 +1,89 @@
 #include "mbed.h"
 #include "MODDMA.h"
-#include "MODSERIAL.h"
 
-DigitalOut led1(LED1);
-DigitalOut led2(LED2);
-DigitalOut led3(LED3);
-DigitalOut led4(LED4);
-MODDMA dma;
-MODSERIAL pc(USBTX, USBRX);
+DigitalOut  led1(LED1);
+DigitalOut  led2(LED2);
+DigitalOut  led3(LED3);
+DigitalOut  led4(LED4);
+MODDMA      dma;
 
 // Function prototypes for IRQ callbacks.
 // See definitions following main() below.
-void dmaTCCallback(void);
-void dmaERRCallback(void);
-void TC0_callback(void);
-void ERR0_callback(void);
+void        dmaTCCallback(void);
+void        dmaERRCallback(void);
+void        TC0_callback(void);
+void        ERR0_callback(void);
+
+/**
+ * @brief
+ * @note
+ * @param
+ * @retval
+ */
+int main()
+{
+    char    s[] = "**DMA** ABCDEFGHIJKLMNOPQRSTUVWXYZ **DMA**";
+
+    printf("\r\nStarting\r\n");
 
-int main() {
-    char s[] = "**DMA** ABCDEFGHIJKLMNOPQRSTUVWXYZ **DMA**";
-    
-    pc.baud(PC_BAUD);
-    
-    dma.attach_tc( &dmaTCCallback );
-    dma.attach_err( &dmaERRCallback );
-    
-    MODDMA_Config *config = new MODDMA_Config;
-    config
-     ->channelNum    ( MODDMA::Channel_0 )
-     ->srcMemAddr    ( (uint32_t) &s )
-     ->dstMemAddr    ( 0 )
-     ->transferSize  ( sizeof(s) )
-     ->transferType  ( MODDMA::m2p )
-     ->transferWidth ( 0 )
-     ->srcConn       ( 0 )
-     ->dstConn       ( MODDMA::UART0_Tx )
-     ->dmaLLI        ( 0 )
-     ->attach_tc     ( &TC0_callback )
-     ->attach_err    ( &ERR0_callback )
-    ; // config end
-    
+    dma.attach_tc(&dmaTCCallback);
+    dma.attach_err(&dmaERRCallback);
+
+    MODDMA_Config*  config = new MODDMA_Config;
+
+    config->channelNum(MODDMA::Channel_0);
+    config->srcMemAddr((uint32_t) & s);
+    config->dstMemAddr(0);
+    config->transferSize(sizeof(s));
+    config->transferType(MODDMA::m2p);
+    config->transferWidth(0);
+    config->srcConn(0);
+    config->dstConn(MODDMA::UART0_Tx);
+    config->dmaLLI(0)->attach_tc(&TC0_callback);
+    config->attach_err(&ERR0_callback);
+
     // Setup the configuration.
     dma.Setup(config);
-    
+
     //dma.Enable( MODDMA::Channel_0 );
     //dma.Enable( config->channelNum() );
-    dma.Enable( config );
-    
+    dma.Enable(config);
+
     while (1) {
         led1 = !led1;
-        wait(0.25);        
+        ThisThread::sleep_for(250ms);
     }
 }
 
 // Main controller TC IRQ callback
-void dmaTCCallback(void) {
+void dmaTCCallback(void)
+{
     led2 = 1;
 }
 
 // Main controller ERR IRQ callback
-void dmaERRCallback(void) {
-    error("Oh no! My Mbed exploded! :( Only kidding, find the problem");
+void dmaERRCallback(void)
+{
+    printf("Oh no! My Mbed exploded! :( Only kidding, find the problem");
 }
 
 // Configuration callback on TC
-void TC0_callback(void) {
-    MODDMA_Config *config = dma.getConfig();
-    dma.haltAndWaitChannelComplete( (MODDMA::CHANNELS)config->channelNum());
-    dma.Disable( (MODDMA::CHANNELS)config->channelNum() );
-    
-    // Configurations have two IRQ callbacks for TC and Err so you 
-    // know which you are processing. However, if you want to use 
-    // a single callback function you can tell what type of IRQ 
+void TC0_callback(void)
+{
+    MODDMA_Config*  config = dma.getConfig();
+
+    dma.haltAndWaitChannelComplete((MODDMA::CHANNELS) config->channelNum());
+    dma.Disable((MODDMA::CHANNELS) config->channelNum());
+
+    // Configurations have two IRQ callbacks for TC and Err so you
+    // know which you are processing. However, if you want to use
+    // a single callback function you can tell what type of IRQ
     // is being processed thus:-
-    if (dma.irqType() == MODDMA::TcIrq)  {
+    if (dma.irqType() == MODDMA::TcIrq) {
         led3 = 1;
         dma.clearTcIrq();
     }
+
     if (dma.irqType() == MODDMA::ErrIrq) {
         led4 = 1;
         dma.clearErrIrq();
@@ -83,7 +91,7 @@
 }
 
 // Configuration cakllback on Error
-void ERR0_callback(void) {
-    error("Oh no! My Mbed exploded! :( Only kidding, find the problem");
+void ERR0_callback(void)
+{
+    printf("Oh no! My Mbed exploded! :( Only kidding, find the problem");
 }
-