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);