iSDIO library for FlashAir

Dependents:   FlashAir_iSDIO_sample FlashAir_iSDIO_16seg_ADT7410_step1 FlashAir_iSDIO_16seg_ADT7410 FlashAir_iSDIO_sample_OS5_ ... more

Revision:
2:b8b33621e7fe
Parent:
1:dc888b9028cf
--- a/iSDIO.cpp	Wed Aug 29 04:04:52 2018 +0000
+++ b/iSDIO.cpp	Sat Jan 19 04:31:16 2019 +0000
@@ -49,6 +49,7 @@
     instance = this;
     _console = console;
     sequenceId = 0;
+    if (_console != NULL)
     _console->printf("new iSDIO\n");
 }
 
@@ -63,6 +64,7 @@
 
 uint32_t iSDIO::getSequenceId()
 {
+    if (_console != NULL)
     _console->printf("sequenceId: %d\n", sequenceId);
     return sequenceId;
 }
@@ -70,6 +72,7 @@
 uint32_t iSDIO::getNextSequenceId()
 {
     sequenceId++;
+    if (_console != NULL)
     _console->printf("Next sequenceId: %d\n", sequenceId);
     return sequenceId;
 }
@@ -201,6 +204,7 @@
         (((uint32_t)mio & 0x1) << 31) |
         (mio ? (((uint32_t)func & 0x7) << 28) : (((uint32_t)func & 0xF) << 27)) |
         (((uint32_t)addr & 0x1FE00) << 9);
+        if (_console != NULL)
         _console->printf("arg = %08x\n", arg);
     return writeExt(arg, src, 512);
 }
@@ -219,10 +223,13 @@
         (mio ? (((uint32_t)func & 0x7) << 28) : (((uint32_t)func & 0xF) << 27)) |
         ((addr & 0x1FFFF) << 9) |
         ((count - 1) & 0x1FF);
+        if (_console != NULL) {
         _console->printf("writeExtMemory: ");
         _console->printf("          addr: %08x\n", addr);
         _console->printf("           src: ");
+        }
         printHex((uint8_t*)src, (uint32_t)count);
+        if (_console != NULL)
         _console->printf("         count: %d\n", count);
     return writeExt(arg, src, count);
 }
@@ -249,7 +256,7 @@
 uint8_t iSDIO::waitResponse(uint32_t sequenceId)
 {
     uint8_t buffer[ISDIO_STATUS_QUEUE_SIZE];
-    
+    if(_console != NULL)
     _console->printf("\nWaiting response ");
     uint8_t prev = 0xFF;
     for (int i = 0; i < 20; ++i) {
@@ -263,28 +270,36 @@
             if (prev != resp) {
                 switch (resp) {
                     case 0x00:
+                        if (_console != NULL)
                         _console->printf("\n  Initial");
                         break;
                     case 0x01:
+                        if (_console != NULL)
                         _console->printf("\n  Command Processing");
                         break;
                     case 0x02:
+                        if (_console != NULL)
                         _console->printf("\n  Command Rejected");
                         return false;
                     case 0x03:
+                        if (_console != NULL)
                         _console->printf("\n  Process Succeeded");
                         return true;
                     case 0x04:
+                        if (_console != NULL)
                         _console->printf("\n  Process Terminated");
                         return false;
                     default:
+                        if (_console != NULL) {
                         _console->printf("\n  Process Failed ");
                         _console->printf("%x", resp);
+                        }
                         return false;
                 }
                 prev = resp;
             }
         }
+        if (_console != NULL)
         _console->printf(".");
         wait_ms(1000);
     }
@@ -295,8 +310,10 @@
 
 void iSDIO::printByte(uint8_t value)
 {
+    if (_console != NULL) {
     _console->printf("%x", value >> 4);
     _console->printf("%x", value & 0xF);
+    }
 }
 void iSDIO::printBytes(uint8_t* p, uint32_t len)
 {
@@ -308,12 +325,15 @@
   int i = 0;
   while (i < len) {
     if ((i & 0xf) == 0) {
+      if (_console != NULL)
       _console->printf("\n");
       printByte(i >> 4);
+      if (_console != NULL)
       _console->printf(": ");
     }
     printByte(*p++);
     i++;
   }
+  if (_console != NULL)
   _console->printf("\n");
 }