Just4Trionic - CAN and BDM FLASH programmer for Saab cars

Dependencies:   mbed

Revision:
6:2fbcbebed28c
Parent:
5:1775b4b13232
--- a/bdm.cpp	Sat Apr 25 17:07:08 2015 +0000
+++ b/bdm.cpp	Sat Apr 23 18:31:40 2016 +0000
@@ -423,20 +423,22 @@
             // registers
         case CMDGROUP_REGISTER:
             // get register code
-            if (cmd_length == 2 && (cmd != CMD_DISPLAYREGS)) {
-                // broken parametre
-                return TERM_ERR;
-            } else {
-                if (cmd_length < 4 || !ascii2int(&cmd_addr, cmd_buffer + 3, 1)) {
+            if (cmd_length == 2) {
+                if (cmd != CMD_DISPLAYREGS) {
                     // broken parametre
+                    printf("err %s line: %d, cmd_length %d\r\n", __FILE__, __LINE__, cmd_length);
                     return TERM_ERR;
                 }
-                // get optional value
-                if (cmd_length > 4 &&
-                        !ascii2int(&cmd_value, cmd_buffer + 4, 8)) {
-                    // broken parametre
-                    return TERM_ERR;
-                }
+            } else if (cmd_length < 4 || !ascii2int(&cmd_addr, cmd_buffer + 3, 1)) {
+                // broken parametre
+                printf("err %s line: %d, cmd_length %d\r\n", __FILE__, __LINE__, cmd_length);
+                return TERM_ERR;
+            }
+            // get optional value
+            if (cmd_length > 4 && !ascii2int(&cmd_value, cmd_buffer + 4, 8)) {
+                // broken parametre
+                printf("err %s line: %d, cmd_length %d\r\n", __FILE__, __LINE__, cmd_length);
+                return TERM_ERR;
             }
 
             switch (cmd) {
@@ -444,6 +446,7 @@
                 case CMD_READSYSREG:
                     if (cmd_length != 4 ||
                             sysreg_read(&cmd_result, (uint8_t)cmd_addr) != TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("%08X", cmd_result);
@@ -460,6 +463,7 @@
                 case CMD_READADREG:
                     if (cmd_length != 4 ||
                             adreg_read(&cmd_result, (uint8_t)cmd_addr) != TERM_OK) {
+                        printf("err %s line: %d, cmd_length %d\r\n", __FILE__, __LINE__, cmd_length);
                         return TERM_ERR;
                     }
                     printf("%08X", cmd_result);
@@ -474,9 +478,11 @@
 
                     // Display all registers
                 case CMD_DISPLAYREGS:
+                    printf(" Register Display\r\n");
                     printf(" D0-7");
                     for (uint8_t i = 0; i < 8; i++) {
                         if (adreg_read(&cmd_result, i) != TERM_OK) {
+                            printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                             return TERM_ERR;
                         }
                         printf(" %08X", cmd_result);
@@ -486,6 +492,7 @@
                     printf(" A0-7");
                     for (uint8_t i = 8; i < 16; i++) {
                         if (adreg_read(&cmd_result, i) != TERM_OK) {
+                            printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                             return TERM_ERR;
                         }
                         printf(" %08X", cmd_result);
@@ -493,31 +500,39 @@
                     printf("\r\n");
 //
                     if (sysreg_read(&cmd_result, 0x0) != TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("  RPC %08X", cmd_result);
                     if (sysreg_read(&cmd_result, 0xC) != TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("     USP %08X", cmd_result);
                     if (sysreg_read(&cmd_result, 0xE) != TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("     SFC %08X      SR 10S--210---XNZVC\r\n", cmd_result);
 //
                     if (sysreg_read(&cmd_result, 0x1) != TERM_OK) {
+
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("  CPC %08X", cmd_result);
                     if (sysreg_read(&cmd_result, 0xD) != TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("     SSP %08X", cmd_result);
                     if (sysreg_read(&cmd_result, 0xF) != TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("     DFC %08X", cmd_result);
                     if (sysreg_read(&cmd_result, 0xB) != TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("    %04X ", cmd_result);
@@ -527,14 +542,17 @@
                     printf("\r\n");
 //
                     if (sysreg_read(&cmd_result, 0xA)!= TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("  VBR %08X", cmd_result);
                     if (sysreg_read(&cmd_result, 0x8)!= TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("   ATEMP %08X", cmd_result);
                     if (sysreg_read(&cmd_result, 0x9) != TERM_OK) {
+                        printf("err %s line: %d\r\n", __FILE__, __LINE__ );
                         return TERM_ERR;
                     }
                     printf("     FAR %08X\r\n", cmd_result);
@@ -580,7 +598,7 @@
             bdm_show_help();
     }
 
-    // unknown command
+// unknown command
     return TERM_ERR;
 }
 
@@ -589,9 +607,10 @@
     printf("Just4Trionic BDM Command Menu\r\n");
     printf("=============================\r\n");
     printf("TD - and DUMP T5 FLASH BIN file\r\n");
-    printf("TF - FLASH the update file to the T5 (and write SRAM)\r\n");
-    printf("Tr - Read SRAM adaption (not done).\r\n");
-    printf("Tw - Write SRAM adaptation (not done).\r\n");
+    printf("TF - FLASH the update file to the T5\r\n");
+//    printf("TF - FLASH the update file to the T5 (and write SRAM)\r\n");
+//    printf("Tr - Read SRAM adaption (not done).\r\n");
+//    printf("Tw - Write SRAM adaptation (not done).\r\n");
     printf("\r\n");
     printf("'ESC' - Return to Just4Trionic Main Menu\r\n");
     printf("\r\n");
@@ -604,9 +623,10 @@
     printf("Just4Trionic BDM Command Menu\r\n");
     printf("=============================\r\n");
     printf("TD - and DUMP T5 FLASH BIN file\r\n");
-    printf("TF - FLASH the update file to the T5 (and write SRAM)\r\n");
-    printf("Tr - Read SRAM adaption (not done).\r\n");
-    printf("Tw - Write SRAM adaptation (not done).\r\n");
+    printf("TF - FLASH the update file to the T5\r\n");
+//    printf("TF - FLASH the update file to the T5 (and write SRAM)\r\n");
+//    printf("Tr - Read SRAM adaption (not done).\r\n");
+//    printf("Tw - Write SRAM adaptation (not done).\r\n");
     printf("\r\n");
     printf("Adapter Commands - a\r\n");
     printf("====================\r\n");