FreeCalypso > hg > freecalypso-tools
comparison loadtools/chainload.c @ 614:02bdb2f366bc
fc-xram: added transfer time reporting
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 24 Feb 2020 23:07:03 +0000 |
parents | dc05170ab113 |
children | bf840c984113 |
comparison
equal
deleted
inserted
replaced
613:ab4021fb1c66 | 614:02bdb2f366bc |
---|---|
6 #include <stdint.h> | 6 #include <stdint.h> |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 #include <stdlib.h> | 8 #include <stdlib.h> |
9 #include <string.h> | 9 #include <string.h> |
10 #include <strings.h> | 10 #include <strings.h> |
11 #include <time.h> | |
11 #include "srecreader.h" | 12 #include "srecreader.h" |
12 | 13 |
13 struct srecreader xramimage; | 14 struct srecreader xramimage; |
14 | 15 |
15 extern struct baudrate *current_baud_rate; | 16 extern struct baudrate *current_baud_rate; |
36 perform_chain_load() | 37 perform_chain_load() |
37 { | 38 { |
38 int resp; | 39 int resp; |
39 unsigned long rec_count; | 40 unsigned long rec_count; |
40 char *argv[3], srecarg[516]; | 41 char *argv[3], srecarg[516]; |
42 time_t start_time, finish_time; | |
43 unsigned duration, mm, ss; | |
41 | 44 |
42 if (open_srec_file(&xramimage) < 0) | 45 if (open_srec_file(&xramimage) < 0) |
43 exit(1); | 46 exit(1); |
44 argv[0] = "ML"; | 47 argv[0] = "ML"; |
45 argv[1] = srecarg; | 48 argv[1] = srecarg; |
65 "%s line %d: S%c record type not supported\n", | 68 "%s line %d: S%c record type not supported\n", |
66 xramimage.filename, xramimage.lineno, | 69 xramimage.filename, xramimage.lineno, |
67 xramimage.record_type); | 70 xramimage.record_type); |
68 exit(1); | 71 exit(1); |
69 } | 72 } |
70 if (xramimage.record_type == '7') | 73 if (xramimage.record_type == '7') { |
74 time(&finish_time); | |
71 break; | 75 break; |
76 } | |
72 /* must be S3 */ | 77 /* must be S3 */ |
73 if (xramimage.datalen < 1) { | 78 if (xramimage.datalen < 1) { |
74 fprintf(stderr, | 79 fprintf(stderr, |
75 "%s line %d: S3 record has zero data length\n", | 80 "%s line %d: S3 record has zero data length\n", |
76 xramimage.filename, xramimage.lineno); | 81 xramimage.filename, xramimage.lineno); |
77 exit(1); | 82 exit(1); |
78 } | 83 } |
79 if (!rec_count) | 84 if (!rec_count) { |
80 printf("Each \'.\' is 100 S-records\n"); | 85 printf("Each \'.\' is 100 S-records\n"); |
86 time(&start_time); | |
87 } | |
81 make_ml_arg(xramimage.record, srecarg); | 88 make_ml_arg(xramimage.record, srecarg); |
82 tpinterf_make_cmd(argv); | 89 tpinterf_make_cmd(argv); |
83 if (tpinterf_send_cmd()) | 90 if (tpinterf_send_cmd()) |
84 exit(1); | 91 exit(1); |
85 if (tpinterf_pass_output(1)) | 92 if (tpinterf_pass_output(1)) |
97 "%s line %d: S7 without any preceding S3 data records\n", | 104 "%s line %d: S7 without any preceding S3 data records\n", |
98 xramimage.filename, xramimage.lineno); | 105 xramimage.filename, xramimage.lineno); |
99 exit(1); | 106 exit(1); |
100 } | 107 } |
101 putchar('\n'); /* newline after the dots */ | 108 putchar('\n'); /* newline after the dots */ |
109 duration = finish_time - start_time; | |
110 mm = duration / 60; | |
111 ss = duration - mm * 60; | |
112 printf("XRAM image transferred in %um%us\n", mm, ss); | |
102 if (xram_run_baudrate != current_baud_rate) { | 113 if (xram_run_baudrate != current_baud_rate) { |
103 resp = loadagent_switch_baud(xram_run_baudrate); | 114 resp = loadagent_switch_baud(xram_run_baudrate); |
104 if (resp) | 115 if (resp) |
105 exit(1); | 116 exit(1); |
106 } | 117 } |