# HG changeset patch # User Michael Spacefalcon # Date 1374862301 0 # Node ID 0c1480317c18b51e1b5996ff2db16e139f1184a6 # Parent e2698daf40d1a7e12263c49a54f9e594a699cd71 dieid via fc-loadtool: added ability to save to a file diff -r e2698daf40d1 -r 0c1480317c18 loadtools/ltdispatch.c --- a/loadtools/ltdispatch.c Fri Jul 26 17:51:49 2013 +0000 +++ b/loadtools/ltdispatch.c Fri Jul 26 18:11:41 2013 +0000 @@ -26,7 +26,7 @@ } cmdtab[] = { {"baud", 0, 1, cmd_baud}, {"crc32", 2, 2, cmd_crc32}, - {"dieid", 0, 0, cmd_dieid}, + {"dieid", 0, 1, cmd_dieid}, {"dump", 2, 2, loadtool_cmd_passthru}, {"dump2bin", 3, 3, cmd_dump2bin}, {"dump2srec", 3, 3, cmd_dump2srec}, diff -r e2698daf40d1 -r 0c1480317c18 loadtools/ltmisc.c --- a/loadtools/ltmisc.c Fri Jul 26 17:51:49 2013 +0000 +++ b/loadtools/ltmisc.c Fri Jul 26 18:11:41 2013 +0000 @@ -7,17 +7,31 @@ #include #include -cmd_dieid() +cmd_dieid(argc, argv) + char **argv; { - uint32_t addr; - uint16_t data; - int stat; + static uint32_t addrs[4] = {0xFFFEF010, 0xFFFEF012, 0xFFFEF014, + 0xFFFEF016}; + uint16_t data[4]; + int i, stat; + FILE *of; - for (addr = 0xFFFEF010; addr <= 0xFFFEF016; addr += 2) { - stat = do_r16(addr, &data); + for (i = 0; i < 4; i++) { + stat = do_r16(addrs[i], data + i); if (stat) return(stat); - printf("%08lX: %04X\n", (u_long)addr, (int)data); + printf("%08lX: %04X\n", (u_long)addrs[i], (int)data[i]); } + if (argc < 2) + return(0); + of = fopen(argv[1], "w"); + if (!of) { + perror(argv[1]); + return(-1); + } + for (i = 0; i < 4; i++) + fprintf(of, "%08lX: %04X\n", (u_long)addrs[i], (int)data[i]); + fclose(of); + printf("Saved to %s\n", argv[1]); return(0); }