diff options
author | Geoffrey Noer <noer@cygnus> | 1997-08-12 21:38:54 +0000 |
---|---|---|
committer | Geoffrey Noer <noer@cygnus> | 1997-08-12 21:38:54 +0000 |
commit | a2c23081d59e6f8eb32102da7cd49d9fbade3ebf (patch) | |
tree | 6660e754151f03443f351a7081f705f234dbd7dd /gdb/ocd.c | |
parent | ccf1cf9c692438515a6ba13b4d4a01f0d58f3c1f (diff) | |
download | gdb-a2c23081d59e6f8eb32102da7cd49d9fbade3ebf.zip gdb-a2c23081d59e6f8eb32102da7cd49d9fbade3ebf.tar.gz gdb-a2c23081d59e6f8eb32102da7cd49d9fbade3ebf.tar.bz2 |
Tue Aug 12 14:37:18 1997 Geoffrey Noer <noer@cygnus.com>
* ocd.c (ocd_wait): loop until we're in BDM mode instead of
assuming control has returned to GDB.
Diffstat (limited to 'gdb/ocd.c')
-rw-r--r-- | gdb/ocd.c | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -453,7 +453,10 @@ ocd_wait () /* Target may already be stopped by the time we get here. */ - if (!(last_run_status & OCD_FLAG_BDM)) +/* if (!(last_run_status & OCD_FLAG_BDM)) */ + + /* Loop until we've dropped back into BDM mode */ + while (!(last_run_status & OCD_FLAG_BDM)) { ofunc = (void (*)()) signal (SIGINT, ocd_interrupt); @@ -464,19 +467,20 @@ ocd_wait () if (pktlen < 2) error ("Truncated response packet from OCD device"); - status = p[1]; + last_run_status = p[1]; error_code = p[2]; if (error_code != 0) ocd_error ("target_wait:", error_code); - if (status & OCD_FLAG_PWF) + if (last_run_status & OCD_FLAG_PWF) error ("OCD device lost VCC at BDM interface."); - else if (status & OCD_FLAG_CABLE_DISC) - error ("BDM cable appears to have been disconnected."); - - if (!(status & OCD_FLAG_BDM)) + else if (last_run_status & OCD_FLAG_CABLE_DISC) + error ("OCD device cable appears to have been disconnected."); +#if 0 + if (!(last_run_status & OCD_FLAG_BDM)) error ("OCD device woke up, but wasn't stopped: 0x%x", status); +#endif } if (ocd_interrupt_flag) |