FreeCalypso > hg > freecalypso-sw
comparison loadtools/ltmain.c @ 422:833e8fa93330
fc-loadtool -r (reattach) option implemented
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Thu, 19 Jun 2014 00:57:02 +0000 |
parents | 5e0e9bb26060 |
children |
comparison
equal
deleted
inserted
replaced
421:4f8a9b2229e9 | 422:833e8fa93330 |
---|---|
14 extern char default_loadagent_image[]; | 14 extern char default_loadagent_image[]; |
15 extern char hw_init_script[]; | 15 extern char hw_init_script[]; |
16 extern void (*default_exit)(); | 16 extern void (*default_exit)(); |
17 extern int gta_modem_poweron; | 17 extern int gta_modem_poweron; |
18 | 18 |
19 extern struct baudrate *find_baudrate_by_name(); | |
20 | |
21 static struct baudrate *reattach; | |
22 | |
19 main(argc, argv) | 23 main(argc, argv) |
20 char **argv; | 24 char **argv; |
21 { | 25 { |
22 extern char *optarg; | 26 extern char *optarg; |
23 extern int optind; | 27 extern int optind; |
24 int c; | 28 int c; |
25 char command[512]; | 29 char command[512]; |
26 | 30 |
27 while ((c = getopt(argc, argv, "a:b:c:C:h:H:i:n")) != EOF) | 31 while ((c = getopt(argc, argv, "a:b:c:C:h:H:i:nr:")) != EOF) |
28 switch (c) { | 32 switch (c) { |
29 case 'a': | 33 case 'a': |
30 iramimage.filename = optarg; | 34 iramimage.filename = optarg; |
31 continue; | 35 continue; |
32 case 'b': | 36 case 'b': |
48 set_beacon_interval(optarg); | 52 set_beacon_interval(optarg); |
49 continue; | 53 continue; |
50 case 'n': | 54 case 'n': |
51 gta_modem_poweron = 0; | 55 gta_modem_poweron = 0; |
52 continue; | 56 continue; |
57 case 'r': | |
58 reattach = find_baudrate_by_name(optarg); | |
59 if (!reattach) | |
60 exit(1); /* error msg already printed */ | |
61 continue; | |
53 case '?': | 62 case '?': |
54 default: | 63 default: |
55 usage: fprintf(stderr, | 64 usage: fprintf(stderr, |
56 "usage: fc-loadtool [options] ttyport\n"); | 65 "usage: fc-loadtool [options] ttyport\n"); |
57 exit(1); | 66 exit(1); |
61 target_ttydev = argv[optind]; | 70 target_ttydev = argv[optind]; |
62 if (!iramimage.filename) | 71 if (!iramimage.filename) |
63 iramimage.filename = default_loadagent_image; | 72 iramimage.filename = default_loadagent_image; |
64 | 73 |
65 open_target_serial(); | 74 open_target_serial(); |
66 perform_compal_stage(1); | 75 if (reattach) |
67 perform_romload(); | 76 switch_baud_rate(reattach); |
68 putchar('\n'); | 77 else { |
69 if (tpinterf_pass_output(1) < 0) | 78 perform_compal_stage(1); |
70 exit(1); | 79 perform_romload(); |
71 putchar('\n'); | 80 putchar('\n'); |
72 if (hw_init_script[0]) { | 81 if (tpinterf_pass_output(1) < 0) |
73 printf("Executing init script %s\n", hw_init_script); | 82 exit(1); |
74 loadtool_exec_script(hw_init_script); | 83 putchar('\n'); |
84 if (hw_init_script[0]) { | |
85 printf("Executing init script %s\n", hw_init_script); | |
86 loadtool_exec_script(hw_init_script); | |
87 } | |
75 } | 88 } |
76 for (;;) { | 89 for (;;) { |
77 if (isatty(0)) { | 90 if (isatty(0)) { |
78 fputs("loadtool> ", stdout); | 91 fputs("loadtool> ", stdout); |
79 fflush(stdout); | 92 fflush(stdout); |