diff options
| -rw-r--r-- | ao-tools/ao-usbload/ao-usbload.c | 12 | ||||
| -rw-r--r-- | ao-tools/lib/cc-usb.c | 12 | ||||
| -rw-r--r-- | ao-tools/lib/cc-usb.h | 2 | ||||
| -rw-r--r-- | src/stm/stm32l.h | 2 | 
4 files changed, 20 insertions, 8 deletions
diff --git a/ao-tools/ao-usbload/ao-usbload.c b/ao-tools/ao-usbload/ao-usbload.c index fd34fbdc..1b217e55 100644 --- a/ao-tools/ao-usbload/ao-usbload.c +++ b/ao-tools/ao-usbload/ao-usbload.c @@ -86,12 +86,13 @@ static const struct option options[] = {  	{ .name = "cal", .has_arg = 1, .val = 'c' },  	{ .name = "serial", .has_arg = 1, .val = 's' },  	{ .name = "verbose", .has_arg = 1, .val = 'v' }, +	{ .name = "wait", .has_arg = 0, .val = 'w' },  	{ 0, 0, 0, 0},  };  static void usage(char *program)  { -	fprintf(stderr, "usage: %s [--raw] [--verbose=<verbose>] [--device=<device>] [-tty=<tty>] [--cal=<radio-cal>] [--serial=<serial>] file.{elf,ihx}\n", program); +	fprintf(stderr, "usage: %s [--raw] [--verbose=<verbose>] [--device=<device>] [-tty=<tty>] [--cal=<radio-cal>] [--serial=<serial>] [--wait] file.{elf,ihx}\n", program);  	exit(1);  } @@ -145,7 +146,7 @@ main (int argc, char **argv)  	uint32_t		flash_base, flash_bound;  	int			has_flash_size = 0; -	while ((c = getopt_long(argc, argv, "rT:D:c:s:v:", options, NULL)) != -1) { +	while ((c = getopt_long(argc, argv, "wrT:D:c:s:v:", options, NULL)) != -1) {  		switch (c) {  		case 'T':  			tty = optarg; @@ -156,6 +157,9 @@ main (int argc, char **argv)  		case 'r':  			raw = 1;  			break; +		case 'w': +			cc_default_timeout = -1; +			break;  		case 'c':  			cal = strtoul(optarg, &cal_end, 10);  			if (cal_end == optarg || *cal_end != '\0') @@ -209,6 +213,10 @@ main (int argc, char **argv)  			if (!this_tty)  				this_tty = cc_usbdevs_find_by_arg(device, "TeleMega");  			if (!this_tty) +				this_tty = cc_usbdevs_find_by_arg(device, "TeleMetrum"); +			if (!this_tty) +				this_tty = cc_usbdevs_find_by_arg(device, "TeleGPS"); +			if (!this_tty)  				this_tty = getenv("ALTOS_TTY");  			if (!this_tty)  				this_tty="/dev/ttyACM0"; diff --git a/ao-tools/lib/cc-usb.c b/ao-tools/lib/cc-usb.c index 38dfff04..1a4dc7a1 100644 --- a/ao-tools/lib/cc-usb.c +++ b/ao-tools/lib/cc-usb.c @@ -152,6 +152,8 @@ cc_usb_dbg(int indent, uint8_t *bytes, int len)  	}  } +int	cc_default_timeout = 5000; +  /*   * Flush pending writes, fill pending reads   */ @@ -227,7 +229,7 @@ _cc_usb_sync(struct cc_usb *cc, int wait_for_input, int write_timeout)  void  cc_usb_sync(struct cc_usb *cc)  { -	if (_cc_usb_sync(cc, 0, 5000) < 0) { +	if (_cc_usb_sync(cc, 0, cc_default_timeout) < 0) {  		fprintf(stderr, "USB link timeout\n");  		exit(1);  	} @@ -268,7 +270,7 @@ int  cc_usb_getchar_timeout(struct cc_usb *cc, int timeout)  {  	while (cc->in_pos == cc->in_count) { -		if (_cc_usb_sync(cc, timeout, 5000) < 0) { +		if (_cc_usb_sync(cc, timeout, cc_default_timeout) < 0) {  			fprintf(stderr, "USB link timeout\n");  			exit(1);  		} @@ -279,7 +281,7 @@ cc_usb_getchar_timeout(struct cc_usb *cc, int timeout)  int  cc_usb_getchar(struct cc_usb *cc)  { -	return cc_usb_getchar_timeout(cc, 5000); +	return cc_usb_getchar_timeout(cc, cc_default_timeout);  }  void @@ -400,7 +402,7 @@ cc_usb_open_remote(struct cc_usb *cc, int freq, char *call)  		cc_usb_printf(cc, "\nc F %d\nc c %s\np\nE 0\n", freq, call);  		do {  			cc->in_count = cc->in_pos = 0; -			_cc_usb_sync(cc, 100, 5000); +			_cc_usb_sync(cc, 100, cc_default_timeout);  		} while (cc->in_count > 0);  		cc->remote = 1;  	} @@ -459,7 +461,7 @@ cc_usb_open(char *tty)  	cc_usb_printf(cc, "\nE 0\nm 0\n");  	do {  		cc->in_count = cc->in_pos = 0; -		_cc_usb_sync(cc, 100, 5000); +		_cc_usb_sync(cc, 100, cc_default_timeout);  	} while (cc->in_count > 0);  	return cc;  } diff --git a/ao-tools/lib/cc-usb.h b/ao-tools/lib/cc-usb.h index e08a956b..9ed198cd 100644 --- a/ao-tools/lib/cc-usb.h +++ b/ao-tools/lib/cc-usb.h @@ -23,6 +23,8 @@  struct cc_usb; +extern int cc_default_timeout; +  struct cc_usb *  cc_usb_open(char *tty); diff --git a/src/stm/stm32l.h b/src/stm/stm32l.h index 799cccbd..c5c28e76 100644 --- a/src/stm/stm32l.h +++ b/src/stm/stm32l.h @@ -1515,7 +1515,7 @@ extern struct stm_dbg_mcu	stm_dbg_mcu;  static inline uint16_t  stm_dev_id(void) { -	return stm_dbg_mcu.idcode & 0xfff; +	return stm_dbgmcu.idcode & 0xfff;  }  struct stm_flash_size {  | 
