FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/lldbg/cmd_dump.c @ 927:48969469d961
gsm-fw: l1_dyn_dwl code compiles and links
| author | Mychaela Falconia <falcon@ivan.Harhan.ORG> | 
|---|---|
| date | Thu, 22 Oct 2015 19:04:36 +0000 | 
| parents | f5affe83ba2d | 
| children | 
| rev | line source | 
|---|---|
| 865 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 1 /* | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 2 * This is a human-oriented memory dump command. The dump is given in | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 3 * both hex and ASCII, with readable spacing. | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 4 */ | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 5 | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 6 #include <sys/types.h> | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 7 #include "types.h" | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 8 | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 9 void | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 10 lldbg_cmd_dump(argbulk) | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 11 char *argbulk; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 12 { | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 13 char *argv[3]; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 14 u_long start, length; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 15 u_long offset; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 16 u_char intbuf[16]; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 17 int i, c; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 18 | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 19 if (lldbg_parse_args(argbulk, 2, 2, argv, 0) < 0) | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 20 return; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 21 if (lldbg_parse_hexarg(argv[0], 8, &start) < 0) { | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 22 lldbg_printf("ERROR: arg1 must be a valid 32-bit hex address\n"); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 23 return; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 24 } | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 25 if (lldbg_parse_hexarg(argv[1], 8, &length) < 0) { | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 26 lldbg_printf("ERROR: arg2 must be a valid 32-bit hex value (length)\n"); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 27 return; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 28 } | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 29 if (start & 0xF || length & 0xF) { | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 30 lldbg_printf("ERROR: implementation limit: 16-byte alignment required\n"); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 31 return; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 32 } | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 33 for (offset = 0; offset < length; offset += 0x10) { | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 34 bcopy(start + offset, intbuf, 0x10); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 35 lldbg_printf("%08X: ", start + offset); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 36 for (i = 0; i < 16; i++) { | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 37 lldbg_printf("%02X ", intbuf[i]); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 38 if ((i & 3) == 3) | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 39 lldbg_putchar(' '); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 40 } | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 41 for (i = 0; i < 16; i++) { | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 42 c = intbuf[i]; | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 43 if (c >= ' ' && c <= '~') | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 44 lldbg_putchar(c); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 45 else | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 46 lldbg_putchar('.'); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 47 } | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 48 lldbg_putchar('\n'); | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 49 } | 
| 
f5affe83ba2d
lldbg hack (poor girl's substitute for JTAG) implemented
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 50 } | 
